分布式系统开发一些注意的点

时间:2021-03-08 16:37:58

1.      服务的接口类单独封装在一个maven的项目中,避免客户端应用整个服务端的代码

 

2.      接口类以及接口参数类要求是可序列化的,避免出现很大的规模的对象,避免使用Enum类型等。

 

3.      因为是分布式服务,服务都基于接口,所以合理规范的接口定义是良好协同开发的基础,尽量提前商定好接口。并提供对接口一个简单mock实现,避免对下游消费者的进度影响

 

4.      分布式后,一切都去中心化了,  所以有些传统基于中心化的开发思路要转换,服务要保证是无状态的。比如原来单机可以很方便的使单机cache,但是在分布式场景下,单机cache会导致状态不一致的问题,除非使用集中式的cache框架;再举个例子, 后台服务器有多个节点, 把上传文件保存在单机目录下,就会导致其他机器访问不到这个文件;唯一ID生成机制,单机环境只要用原子类型自增即可,但是在分布式环境下就用ID冲突问题。类似问题很多,这里只是一个提醒。

 

 

5.      DRDS表设计和分库分表非常讲究技巧, 请认真阅读DRDS的产品开发文档:

http://www.aliyun.com/product/drds/?spm=5176.383715.3.40.wEDbps