优点
1.每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求;
2.微服务能够被小团队单独开发;
3.微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的;
4.微服务能使用不同的语言开发;
5.微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果,无需通过合作才能体现价值;
6.微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面组件混合;
缺点:
- 1.运维要求较高;
- 2.分布式的复杂性;
- 3.接口调整成本高;
- 4.学习难度曲线加大:需要掌握一系列的微服务开发技术
- 5.处理分布式事务较棘手
- 6.多服务运维难度,随着服务的增加,运维的压力也在增大
不适合微服务的场景
- 构建分布式架构非常吃力时;
- 服务器蔓延时;
- 采用小型应用、快速产品原型时;
- 对数据事务的一致性有一定要求时。