dubbo服务最佳实践
一、分包
- 拆分uinnova-user,uinnova-order
- 服务接口,请求服务模型异常信息放在api包里
- api里放入spring的引用配置,也可以放在模块的包目录里面
二、粒度
- 尽可能接口设置为粗粒度,每个服务方法代表一个独立的功能,而不是某个功能的步骤,否则就会涉及分布式事务
- 服务接口建议用业务场景划分,并对相近业务做抽象,防止接口暴增
- 不建议使用过于抽象的通用接口
三、版本
- 每个接口都应该定义版本,为后续的兼容性提供前瞻性的考虑
- 建议使用两位数版本号,因为第三位版本号表示兼容性升级,只有不兼容时才需要便能服务版本
- 当接口做到不兼容升级的时候,先升级一半或一台提供者为新版本,再将消费者全部升级为新版本,然后再将剩下的一半全部升级为新版本
推荐用法
在provider端尽可能设置sonsumer端属性
比如timeout、retires、线程池大小,LoadBalance
配置管理员信息
application上面配置的owner、建议配置2个人以上,
因为owner可以在监控中心看到
配置dubbo缓存文件
