发布时间:2022-02-19作者来源:优智互联浏览:1043
分布式服务架构、微服务架构与 API 网关
1. 什么是API网关(API Gateway)
其实,网关跟面向服务架构(SOA)和微服务架构(MSA)有很深的渊源。
十多年以前,银行等金融机构完成全国业务系统大集中以后,分散的系统都变得集中,也带来了各种问题:业务发展过快如何应对,对接系统过多如何集成和管理。为了解决这些问题,业界实现了作用于渠道与业务系统之间的中间层网关,即综合前置系统,由其适配各类渠道和业务,处理各种协议接入、路由与报文转换、同步异步调用等操作。
人们基于SOA的理念,在综合前置的基础上,进一步增加了服务的元数据管理、注册、中介、编排、治理等功能,逐渐形成了企业服务总线(ESB)。
面向服务架构(SOA)是一种建设企业IT生态系统的架构指导思想。SOA的关注点是服务,服务最基本的业务功能单元由平台中立性的接口契约来定义。通过将业务系统服务化,可以将不同模块解耦,各种异构系统间可以轻松实现服务调用、消息交换和资源共享。不同于以往的孤立业务系统,SOA强调整个企业IT生态环境是一个大的整体。整个IT生态中的所有业务服务构成了企业的核心IT资源。各个系统的业务拆解为不同粒度和层次的模块和服务,服务可以组装到更大的粒度,不同来源的服务可以编排到同一个处理流程中,实现非常复杂的集成场景和更加丰富的业务功能。
SOA从更高的层次对整个企业IT生态进行统一的设计与管理,应用软件被划分为具有不同功能的服务单元,并通过标准的软件接口把这些服务联系起来,以SOA架构实现的企业应用可以更灵活快速地响应企业的业务变化,实现新旧软件资产的整合和复用,降低软件整体拥有成本。
当然基于ESB这种集中式管理的SOA方案也存在种种问题,特别是在面向互联网技术领域的爆发式发展的情况下。
2. 分布式服务架构、微服务架构与API网关
近年来,随着互联网技术的飞速发展,为了解决以ESB为代表的集中式管理的SOA方案的种种问题,以Apache Dubbo(2011年开源后)与Spring Cloud为代表的分布式服务化技术的出现,给了SOA实现的另外一个选择:去中心化的分布式服务架构(DSA)。分布式服务架构技术不再依赖于具体的服务中心容器技术(比如ESB),而是将服务寻址和调用完全分开,这样就不需要通过容器作为服务代理。
之后又在此基础上随着REST、Docker容器化、领域建模、自动化测试运维等领域的发展,逐渐形成了微服务架构(MSA)。在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立地设计、开发、测试、部署和管理。这时,各个独立部署单元可以选择不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,但是要求必须使用一种语言和平台无关的服务协议作为各个单元之间的通信方式。