api网关 bff,api网关的优缺点

相关名词剖析随着互联网的快速发展,企业的IT建设也是飞速发展的,但是在建设企业信息化时没有统筹考虑,建设往往不成体系、重复开发、烟囱式的建设,造成了资源的冗余和

相关名词剖析

随着互联网的快速发展,企业的IT建设也在快速发展,但企业信息化建设时没有统筹考虑,经常进行不系统、重复性的开发,导致以下后果: SOA、ESB、微服务、API网关、REST等技术逐渐兴起,解决资源冗余、浪费等问题。技术要点总结如下。

1API网关分析

API网关是一个服务器,也可以被认为是进入系统的唯一节点。这与面向对象的设计模式Facade模式非常相似。 API网关封装了内部系统架构,为各类客户端提供API。功能包括授权、监控、负载平衡、缓存、请求分片和管理以及静态响应处理。

a4f490e902444278921b669d1f6ff960~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=ADNhZK6TEJ5DVhImRiK3r4tRESY%3D

API网关负责服务请求的路由、组合和协议转换。来自客户端的每个请求首先通过API 网关,然后将请求路由到适当的微服务。 API网关通常会调用多个微服务并将它们组合起来处理请求。您可以在内部使用的WEB 和非WEB 协议之间进行转换。 API网关还可以为每个客户端提供定制的API。通常,在产品详细信息场景中,API 网关可以提供移动客户端可以遍历的端点。 a 请求所有产品的详细信息。 API网关通过调用各种服务(产品信息、推荐、评论等)并合并结果来处理请求。 API网关的主要特点是:

e60dc9190fe34806951b8d4cd1754199~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=1kmbuCeN9R1FZQNw9rA236OyypE%3D

使用API 网关有优点也有缺点。使用API网关的最大好处是:

1. 封装应用程序的内部结构。客户端只需要与网关进行交互,无需调用具体的服务。

2. API网关为每种类型的客户端提供特定的API。这减少了客户端和应用程序之间的交互次数并简化了客户端代码。

API网关的缺点是:

1. API Gateway 添加了必须开发、部署和维护的高可用性组件。

2、API网关是发展瓶颈。要公开每个微服务的端点,开发人员必须更新其API 网关。 API网关更新过程应该尽可能简单。否则,开发者将不得不排队等待更新网关。

2ESB服务总线

其主要功能是作为企业信息系统的“龙骨”,整合各个业务系统,实现异构系统的互联,并对各个业务系统所使用的数据进行检索和调度。通常称为企业服务总线。 ESB 提供网络中最基本的连接中心,是企业神经系统的必要构建块。

d727fe3a43574449879c2da03b8c4154~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=vNIFtTy1lLQVyixaEDacW1b9vrA%3D

ESB 提供开放的、基于标准的消息传递机制,可以通过简单的标准适配器和接口实现粗粒度应用程序与其他组件之间的互操作性,从而满足大型异构企业环境的集成需求。

ESB 允许公司以无缝、非侵入的方式提供新的服务接口,几乎不需要对现有系统进行任何代码更改,并且可以支持其部署环境中的任何标准。充当缓冲区(负责在众多服务之间转换业务逻辑和数据格式)的ESB与服务逻辑分离,因此不同的应用程序可以同时使用相同的代码,而无需在转换应用程序或数据时更改服务代码。提供服务。它改变。

ESB产品不仅作为产品解决了一些基础问题,而且产品本身在项目过程中不断得到改进和发展。 ESB逐渐产品化其内容用于各个领域的解决方案,并且随着项目数量和行业的增加,ESB的功能也越来越丰富,能够满足不同行业的不同需求。微服务兴起,ESB更新迭代,ESB更新了微服务开发、编排、注册等功能。主要微服务介绍如下。

3 分析微服务

随着信息化的不断发展,微服务对于需要通过应用来实现的软件功能的要求也越来越具体和细致。这是一个非常复杂和痛苦的过程,这就是微服务概念诞生的原因。换句话说,这种将功能暴露给服务,应用程序通过调用各种服务来实现业务的设计架构称为微服务。

0c32604dac2647d5b32037f9d93b2c00~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=S0VSJboY%2BpBKLxnaJ5CKPkzEf9k%3D

微服务通常执行特定功能,例如订单管理、客户管理等。每个微服务都是一个微应用程序,具有自己的六边形架构,包含业务逻辑和各种接口。某些微服务通过公开API 供其他微服务或应用程序客户端使用。此外,一些微服务是通过Web UI 实现的。在运行时,每个实例通常是一个云虚拟机或Docker 容器。

微服务主要通过组件分离拥有独立的生命周期,并且可以按需扩展。这种方法消除了组件之间的技术依赖性,并允许每个服务选择最佳的技术来实施,从而使它们能够专注于完成其任务。在每种情况下,每项任务都代表您的小型企业的一项职能。不同的服务也可以使用不同的编程语言来实现。微服务使得开发、测试、部署等方面更加灵活,整体格式紧密耦合。走向IT技术思维。

4 微服务架构

微服务架构MSA是一种轻量级的服务治理解决方案,是一种将系统功能以服务的形式暴露给服务器,并组合调用服务来实现特定功能并解决现实业务问题的架构风格。

d0d8659386f34828be6923f2508e9d4a~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=90y5mvd64GvRoNiBUhQaZ1NfsyM%3D

微服务架构的好处是:

1、微服务架构允许每个服务都由专门的开发团队来开发。开发者可以自由选择自己的开发技术并提供API服务。当然,许多公司试图通过仅提供某些技术选项来避免混乱。这种自由意味着开发人员在项目开始时不会被迫使用过时的技术,并且可以选择最新的技术。另外,该服务相对简单,因此使用现有技术重写以前的代码并不困难。

2、微服务架构模型允许每个微服务独立部署,无需开发人员协调其他服务部署对本服务的影响。此更改加快了部署速度。例如,UI 团队可以采用AB 测试来快速部署更改。微服务架构模式支持持续部署。

3.微服务架构模型允许每个服务独立扩展。根据每个服务的规模部署满足您需求的实例。您还可以使用更适合您的服务资源需求的硬件。例如,您可以将CPU 密集型服务部署到EC2 计算优化实例,或将内存数据库部署到EC2 内存优化实例。

API 生态系统如今,企业面临更多挑战,需要值得信赖的合作伙伴来促进其发展。企业和合作伙伴以API的形式交换服务、功能和数据,系统直接连接,实现深度合作,建立牢固的合作关系。将您的API接入阿里云商城,以API的形式开放功能、服务和数据供开发者购买和使用,避免在API商城购买第三方成熟的功能和服务进行扁平化开发。注重专业,借力发展。

68ec668041294a0cbe3338ba6abc22c4~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=50lwXbW3XORUeXtFQaKi3JGUbA8%3D

多设备支持随着移动和物联网的普及,API需要兼容更多设备以扩大业务规模,但这也增加了系统复杂性。通过API Gateway,企业只需调整API Gateway 中的API 定义,即可将其API 适配到多种设备,而无需任何额外的工作。企业只需维护一个多终端输出的服务系统,调整其API定义即可支持APP、设备、Web端等多种终端。这消除了针对多个场景使用多个API 集的需要,从而大大减少了管理和工作量。运营成本。

7f6a43cc80b042068f22d52380acfc25~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=56%2BHqEcWLdna9uU0Vu6vnUlfwok%3D

在快速开发过程中,系统集成往往杂乱无章,导致重复开发、栈搭建,造成冗余和资源浪费。通过API网关标准化和统一系统之间的接口,通过标准化接口实现系统集成。

bfc7989f26454f428b2045a8c93b7dc5~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=zIKRHoHgG2W8iDw01fRwGDin5Wc%3D

从以上四种场景我们可以看出,API网关可以集中管理API,使用统一的API平台来统一和管理这些API接口,并提供统一的通信协议和API文档。 SDK 极大地改善了公司内各部门之间的关系。

2ESB应用场景

应用集成可以对接不同的系统,连接现有的孤立的应用系统。它涉及服务之间交换信息、协调不同应用程序和数据之间的服务传输协议以及应用程序数据和服务之间转换消息/数据格式。每个应用系统通过应用集成平台与其他系统交互。

2cb6b03d88f74fac9bb8804d9a5b3c7d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=TZv3cW1rmzcetqgS0MAQX%2BcetJM%3D

典型场景:

1.费用报销与工资的关联。

2. 将您的生产系统连接到您的ERP 系统。

3、业务与财务一体化,应用系统与财务系统凭证对接。

数据集成负责业务数据的上传、聚合,以及基础数据(主数据)的发布和分发。 AEAI ESB应用集成平台作为数据交换平台,支持应用程序之间的批量数据交换以及数据库之间的数据交互,包括数据提取、转换和导入操作。同时,MDM不需要向不同业务系统请求主数据检索和同步,只需要通过AEAI ESB进行数据分发和交付即可检索这些数据。

044fdff2dc1645e0a353bb113cac4bde~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=wvaf3MRnpGPtZHhlVMEyBbfQgag%3D

典型场景:

1、企业数据集成或数据中心建设。

2.支持基础数据分发中的数据交换平台项目、主数据管理项目。

服务平台用于微服务架构中的REST服务开发、API网关、服务代理、服务监控、服务统计、服务超市。具体来说,它是一个分布式部署的ESB(可以放在Docker容器内部),实现微服务架构下的Rest服务的开发、Rest服务的组合、Rest服务的代理,以及其他系统提供的Rest服务的代理。将被注册为。管理控制台。提供对Rest 服务行为的监控、启动和停止服务、监控对代理服务的每次调用等。

b1d02c0bfd19~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=hGJoXHaID4lHNIgNm%2F5%2F%2FEcqtbQ%3D” alt=”7930c9e788c34a8c8b9db1d02c0bfd19~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=hGJoXHaID4lHNIgNm%2F5%2F%2FEcqtbQ%3D” />
典型场景:
1.前后端分离技术架构下,做为Rest服务的开发平台;
2.OpenAPI运作模式下的服务治理、监控、统计、流量控制。
平台协同从业务系统实时获取相关数据,为Portal提供数据服务、BPM提供数据回写,协作MDM、IDM做数据分发,为其它平台提供数据基础和服务注册查询。ESB企业服务总线对SOA整合架构的实现起到支撑作用,数据门户中,ESB从业务系统实时获取相关数据以XML或者JSON格式为门户平台中各图表组件、表格组件提供数据服务;业务流程重组中,ESB负责从各异构系统中动态获取表单数据,以JSON方式为BPM提供业务数据,在流程审批操作时,实现业务数据状态的回写等。
ff8bab7e81534eddb729e5fcec6fa53d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=Qnvy3RKol0SYOjdEANBL%2BZSPVaw%3D
典型场景:
1.企业业务流程重组项目支撑BPM实现应用对接机制;
2.统一门户中为图表、列表、表格等前端展现组件提供数据服务;
3.SOA综合集成项目,支撑各个平台,为其提供服务。

区别联系分析

1ESB与API网关联系
SOA是一种理念,它的主要特性是面向服务的分布式计算,服务间松散耦合,支持服务的封装,服务注册和自动发现,以服务契约方式定义服务交互方式。但是SOA并没有定义出具体的实现方式,目前有两套SOA理念的实现方式:中心化和去中心化,这两套架构并没有优劣之分,还是要针对企业的根本诉求。
SOA中心化的实现方式就是ESB,ESB的根本诉求是为了解决异构系统之间的连通性,通过协议转换、消息解析、消息路由把服务提供者的数据传送给服务消费者。AEAI ESB企业服务总线不但可以解决异构系统的集成难题,随着微服务的兴起,ESB还可以开发微服务,设计微服务接口的限流、代理、转发以及安全等功能,但是ESB并不是微服务中的API网关,微服务可以理解为是ESB中重要的一部分。
SOA去中心化实现方式的根本诉求是扩展性,实现方式就是微服务。分布式服务框架,主要有dubbox、spring cloud,实现后端服务治理的功能。
2ESB与API网关区别
现从ESB和API网关的使用场景、传输对象、服务契约、实现方式、交互性以及安全层次进行区别分析。
d520a08328f34d7c888ce56f9e3c48fb~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=R3Qqsgyy889n8Dc02Y%2BTH5uCzwA%3D
使用场景在2模块已经详细介绍,在此不做过多赘述,从传输对象上讲ESN传输的是XML、JSON以及消息格式,而网关是传递JSON对象格式。ESB是将自己服务和接口契约发布到服务注册中心,一边服务使用者可以发现和访问该服务,网关则是通过文档进行约束。
在其实现方式上二者也是有很大区别的,ESN可以通过Http、WS、MQ、Restful等方式实现,而网关是通过Http及Restful实现,较为单一。
在功能上二者的区别如下。
dad7957f668f4c89a50bdeedc270e868~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717749557&x-signature=7mLeH9a4UbyPlCf14mOyoDsFf0c%3D
ESB提供了服务总线的基础架构,提供系统一致性、安全性、可靠性,以及性能和扩展能力保障的基础技术手段。ESB提供了基础的集成服务,包含了应用集成、数据集成。提供内置的各种公用服务。例如渠道认证服务,日志服务等公用服务。ESB提供了服务配置管理的前台工具集合,并提供行业的服务规约标准。ESB提供了多角度的系统实时监控与交易报表,提供用户定制的告警。提供了多种安全机制并支持和第三方安全系统的有效集成,提供有效的安全监控机制。
在功能上API网关有API的全生命周期的管理,包括API的创建、发布、下线和删除等生命周期管理功能。其调试工具使用页面调试工具验证API的连通。在限流上用于管控API的请求频率、用户的请求频率和应用的请求频率,流量控制的时间单位可以是秒、分钟、小时或天,并且允许设置特殊的应用。在监控功能上可以监控API请求次数、API调用延迟和API错误信息。

AEAI ESB特性

应用集成平台主要作为企业信息系统的“龙骨”来集成各业务系统,一般称之为企业服务总线(Enterprise Service BUS,ESB),在数通畅联软件的产品家族中应用集成平台命名为AEAI ESB,产品特性如下:
1.AEAI ESB支持容器化部署、多租户管理、支持REST微服务服务开发、编排、注册;
2.AEAI ESB企业服务总线提供API网关运作模式下的服务治理、监控、统计以及流量控制;
3.AEAI ESB企业服务总线自带集成样例可快速上手;
4.AEAI ESB企业服务总线提供灵活的业务日志及日志配置机制;
5.产品提供丰富强大的组件堆,如:Http Rest、Soap、WebService、FTP、数据库操作、消息队列、主题收发,可以满足客户绝大多数的业务场景;
6.平台除了预置丰富典型组件完成常规对接功能,同时内置通用的数据适配、协议适配、协议接入、消息转换、消息路由等组件,可以满足各种复杂的业务集成场景;
7.平台基于设计器可以以图形化、拖拽方式方式创建服务及消息流程,设计器直接连接服务器使用一键热部署、即时断点调试;
8.对于有事务特性的信息, AEAI ESB的事务机制能够为用户提供多种粒度的事务控制;
9.对于并发量大、数据量大的需求场景,AEAI ESB的服务集群机制可以方便完成集群配置工作;
10.平台支持认证、授权主流机制和规范,确保所有用户安全地访问应用集成平台提供的服务;
11.产品通过各种机制保证ESB能适应各种复杂的外部环境。
本文由@数通畅联原创,欢迎转发,仅供学习交流使用,引用请注明出处!谢谢~

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/82769.html

(0)
小条's avatar小条
上一篇 2024年5月31日 下午4:39
下一篇 2024年5月31日 下午4:47

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注