为什么选用微服务:
降低软件复杂性、开发难度和部署风险(独立部署)、缩短迭代周期
增强服务的高可用性(组件和服务都是以集群方式部署)、容错性
可持续扩展、适应不同的业务复杂性;
伸缩性好,可以用增加微服务运行实例的方式来增强服务能力(涉及到数据表设计); 数据表分散分担压力;
微服务开发模式和传统开发模式对比:
分工不同:以前我们可能是一人一个模块(或多个),现在可能是一人一个系统(或多个);对新接手员工的渐进性开发也比较友好
架构不同:比如服务的拆分等
部署和运维方式不同:持续化集成和部署、服务的监控。(运维难度会增加)
容灾不同:好的微服务可以隔离故障避免服务整体 down 掉,坏的微服务设计仍然可以因为一个子服务出现问题导致连锁反应 (每个组件都要考虑高可用性问题)
数据库挑战:每个微服务都有自己独立的数据库,所以后台管理的联合查询、一致性问题都要考虑
常见微服务架构
Dubbo (最早流行的微服务架构,已有成熟方案,得到广泛验证和应用),Spring Cloud(约2017年年中开始热门讨论和流行,还在发展中,版本更新很快)

网友评论