需求缘由
最近部分只读服务已经切换到了Dubbo提供的服务化接口;经过一段时间的生产验证, 各种监控指标显示非常稳定,所以打算开始切换写服务接口; 但大家对写操作跑服务化没有信心,于是提了一个需求能随时将远程rpc调用切换打本地jar方法调用;
在决定进行服务化时,我们做了一些必要的准备工作;从服务治理,链路跟踪,监控以及报警方面到代码层面,运维,流程等多个方面做了相应的调整
在分布式系统中,同时满足“CAP定律”中的“一致性”、“可用性”和“分区容错性”三者是不可能的。在互联网领域的绝大多数的场景,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。
当前开源的微服务框架有Dubbo, Spring Cloud, Dubbox, Motan, Thrift, GRPC 等;以Dubbo和Spring Cloud使用最广,本文仅对这两个框架结合自己项目的情况进行比较。