1 . 分包:将服务接口,Model,服务异常都放到API包中,服务模型即异常都是API包中的一部分,服务接口尽可能大粒度,
每个服务方法代表一个功能,而不是一个步骤,否则会面临分布式事务问题,dubbo未提供分布式事务
2. 粒度:服务接口应以业务场景为划分,并对相近业务做抽象,防止接口数量爆炸,每个接口都应该定义版本号,为后续不兼容升级提供可能,如:<dubbo:service interface="Service" version="1.0">
3. 版本:建议使用两位版本号,第三位版本号通常表示兼容升级,只有不兼容时才需要变更服务版本,当服务不兼容时,先升级一半提供者为新版本,在将消费者全部升为新版本,然后将剩下的一半提供者升级为新版本
4.兼容性:服务接口增加方法,或服务模型增加字段,可向后兼容,删除方法或删除字段,将不兼容,枚举类型新增字段也不兼容,需通过变更版本号升级。