内容来自《Java Web 程序员面试笔试宝典》

增加测试、部署、跟踪监控难度

【出现频率】★★★★★ 【学习难度】★★★☆☆

答案:缺点:微服务会较大幅度增加服务的数量,随着服务数量的增加,管理的复杂性也增加,系统测试部署和生产部署的复杂度也增加,跟踪监控也会变麻烦,运维的工作量相应增加。微服务增多,服务之间的访问有可能非常多,这可能会引发网络问题。过多的服务增加了测试的难度。微服务作为分布式应用系统,还有分布式应用系统固有的问题,如 CAP 原则、网络延时、分布式事务、异步消息等问题。

优点:微服务架构能解决单体式应用带来的问题,单体式应用随着业务发展功能增加会变得很庞大,代码会变得复杂难以维护。越往后功能越难以扩展,难以升级。微服务将大的系统按业务分成很多小的服务系统,服务内部高内聚,服务之间松耦合。单个的微服务可以独立维护升级重构而不影响其他系统的运行使用。每个微服务可以按照实际需要独立扩展或撤销部署,这样可以更为合理地利用服务器资源。