在微服务架构之前还有一个概念:SOA(Service-Oriented Architecture)-面向服务的体系架构。SOA已经提出面向服务的架构思想,微服务是SOA的一种演进。
微服务的技术特点:
1) 单一职责的。一个微服务应该都是单一职责的,这才是“微”的体现,一个微服务解决一个业务问题(是一个业务问题而不是一个接口)。
2) 面向服务的。将自己的业务能力封装并对外提供服务,这是继承SOA的核心思想,一个微服务本身也可能使用到其它微服务的能力。
二. 与现有技术做对比,分析微服务技术方案的优点是什么?
1) 易于开发和维护:一个微服务只会关注一个特定的业务功能,所以它业务清晰、代码量少。开发和维护单个微服务相当简单。而整个应用是若干个微服务构建而成的,所以整个应用也被维持在一个可控状态。
2) 单个微服务启动较快:单个微服务代码量较少,所以启动会比较快。
3) 局部修改容易部署:单个应用只要有修改,就得重新部署整个应用,微服务解决了这样的问题。一般来说,对某个微服务进行修改,只需要重新部署这个服务即可。
4) 技术栈不受限:在微服务架构中,可以结合项目业务及团队的特点,合理选择技术栈。例如某些服务可以使用关系型数据库MySQL;某些微服务有图形计算需求,可以使用Neo4j;甚至可根据需求,部分微服务使用Java开发,部分微服务使用Node.js开发。
5) 按需收缩:可根据需求,实现细粒度的扩展。例如,系统中的某个微服务遇到了瓶颈,可以结合这个微服务的业务特点,增加内存、升级CPU或者增加节点。
综上,单体应用架构的缺点,恰恰是微服务的优点。
狐小E, 企业数字化建设的全景攻略 https://www.hixiaoe.com
原文:https://blog.51cto.com/1831851/2536696