SOA架构
SOA架构全称(面向服务的架构)——面向服务的架构。
面向服务的体系结构(SOA)是一种组件模型,它将应用程序的不同功能单元(称为服务)分开,并通过在这些服务之间定义良好定义的接口和协议来连接它们。接口是以中立的方式定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得在不同系统中构建的服务能够以统一和通用的方式进行交互。
与SOA相比,还有一个ESB(企业服务总线)。简单来说,ESB就是一个用来连接各种服务节点的管道。为了集成不同系统和协议的服务,ESB做了消息的转换、解释和路由,使不同的服务可以互联。
SOA解决的问题:
1.系统综合
在企业不断发展的过程中,n个系统之间会有调用,系统之间的关系可能是一个杂乱的网络结构。引入SOA,完成服务之间关系的排序。这一步需要引入一些产品,比如ESB、技术规范和服务管理规范。
2.系统化。
完成服务的重用。比如之前,每个系统可能都写了一套登录注册、邮件、短信等功能。现在,我们可以将登录、注册、邮件、短信等功能抽象为可重用、可组装的服务,通过合理的服务安排,实现业务功能的快速重用。
3.商业服务
完善企业系统对外服务能力。封装业务单元(如OA系统、财务系统等。)变成一项服务。
4.微服务架构
微服务架构类似于SOA架构,微服务架构是SOA架构的升级。微架构的重点是“业务的完全组件化和商业化”。原始的大型完整应用程序被拆分成几个独立的小型应用程序。当然,没有必要为了微服务而微服务,也要考虑系统的量级。比如公司只有一个财务系统,有登录注册、发邮件、发短信、上传文件等功能。没有其他系统需要重用这些功能,用户数量也只有几百人。那么可以满足大量且完整的单体应用。在发展的过程中,企业没有倒闭,而是蓬勃发展。一个简单的财务系统是满足不了需求的,CRM、OA等功能也不适合塞在那个庞大完整的财务系统里。这时候闭着眼睛也可以开通服务。拆分成财务系统、CRM、OA、登录注册、邮箱、短信、文件服务等系统。
微服务有几个特点:
1.实现服务组件化。
的不同组件是相互独立的,服务的分发一般不需要协调每个组件。
2.根据业务划分服务和开发团队。
不同的开发团队可以选择不同的技术、语言等等。
3.分散
进一步降低了微服务之间的耦合度。在复杂的业务场景中,它涉及多个微服务,这些微服务通常在客户端或中间层(网关)处理。
每个微服务都有自己独立的数据库或其他持久化能力。
4.基础设施自动化(CICD devo PS)
Docker和微服务相互成就。Docker容器技术和微服务架构的概念出现的更早。但是最近几年才开始热起来。Docker容器技术的普及,让微服务的普及更加便捷。