微服务优缺点 分工协作 单体 :影响开发效率、发布及迭代性差,项目启动慢,每一个开发者都要对整个项目有个总体的把握 拆分 :开发效率高,每个开发者专注自己负责的模块,提升了敏捷性, 并发能力 单体:整体集群,易造成系统资源浪费;无法准确的预测最大并发量,无法准确的预知服务器扩容数量 拆分:服务集群,充分利用服务器资源,可以只针对多个或单个服务扩容,容易定位问题或服务并发数量,从而实现更加准确的扩容 业务 单体:随着业务的增加,应用慢慢膨胀,难以维护 差分:根据功能垂直差分,责任更加分明,维护更加精确 容错 单体:应用某个地方出现问题,可能会导致整个应用出现问题,从而导致无法对外提供服务 拆分:单个服务出现问题,可以进行熔断(隔离)不会导致整个应用出现问题 维护 扩展 单体:难以进行升级技术更新 拆分:新的服务可以采用任意新技术 缺点 分布式编程比较困难,并且总是面临失败的可能 最终一致性,保持最终一致性非常困难 运维较为复杂