技术架构选型
「这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战」
1. 关于技术选型
为什么要技术选型?
目的:降低开发成本,提高研发效率
1.2 微服务架构的产生
单体架构
所有的模块打包到一起部署运行,例如:打包一个war包放到一个tomcat下运行,这种架构也叫巨石型应用架构,在开发小型项目上有独特优势,易于调试、部署、运维方便
缺点:
- 不可靠,任何模块的一个bug,可能会托跨整个应用
- 单位扩展,只能通过运行更多的服务器水平扩展,而不同的应用服务对资源的需求不同
- 不可持续发展, 引入新的框架或语言要重构所有的业务模块,往往需要在初期就选定技术栈
SOA(面向服务架构)
SOA(Service Oriented Architecture), 面向服务架构,他是一种设计方法,设计上通常是自上而下的,服务间松散耦合。ESB集成不同协议的服务,做消息的转化、解释、路由从而联通各个服务,解决企业通信问题,服务松耦合、可扩展
缺点:
- ESB的存在并没有根本解决单体巨石应用的一些问题
- SOA更多的面向企业服务,服务拆分粒度很大,更多的是为了复用
微服务架构
微服务,是去中心化的SOA扩展,它强调服务彻底的组件化,一个组件就是一个产品,服务切分粒度更小,设计上更多的自下而上的,服务间通过轻量化的协议进行通信,并根据服务本身需要独立化部署