本篇文章1753字,读完约4分钟

基于服务网格的下一代分布式微服务框架

随着用于定量金融的C++分布式xRPC通信框架的发布,数字动态重新发布了用于分布式服务框架的智能代理xPort v1.0版。XPort智能代理完全用C++编写,支持数字动能xRPC通信协议。它主要用于实现分布式服务框架(如服务网格服务网格)中多应用服务的智能调度和管理功能。xPort v1.0智能代理的发布标志着数字时代将掌握下一代分布式微服务架构——服务网格的核心开发技术。使用最新的分布式微服务架构,数字动能能够构建多个异构服务平台,实现复杂的服务解耦和跨服务通信,满足多服务场景的交付。

数字动能发布分布式智能代理xPort V1.0版

什么是出口?

智能代理,又称侧车,不仅是新一代分布式微服务框架——服务网格服务网格框架的基石组件,也是服务网格数据平面和控制平面的核心管理组件。

ISTO服务网格通用模型

XPort是一个智能代理(也称为侧车),用于服务具有数字动能的网格核心组件。XPort以xRPC为主要通信协议,主要负责管理服务网格服务网格节点之间的数据平台和控制平面。服务网格——服务网格被认为是基于分布式思想的下一代微服务体系结构。它提出用一种新的分布式轻量级Sidecar(以下简称智能代理)部署模式来取代原有的庞大的分层堆叠式集中式服务框架。应用服务之间的数据通信将由智能代理接管,不再需要关注通信和控制细节,信息可以在服务网格之间高速传输。对于系统级功能调用,应用服务单元不再需要关心如何调度,智能代理完全负责数据平台和控制平面之间的协调。这种改进将进一步分离业务代码和技术实现,并进一步减少技术架构变化对业务代码的影响。使用智能代理在应用服务之间传递信息是服务网格服务网格设计的核心思想。与ISTO经典的服务网格模型相比,由数字动能提出的直接交换网格服务网格体系结构重量更轻。它主要是为金融行业的大数据传输、复杂计算和高速传输的需要而设计的。其智能代理xPort完全独立开发,采用大量创新设计。

数字动能发布分布式智能代理xPort V1.0版

一种改进的数字动能服务网格模型。

第二,智能代理xPort v1.0的特点是什么?

1.智能代理通信不再通过通用模型的控制面板,而是处于直接数据交换模式。

在服务网格通用模型中,智能节点(侧车)将数据平面与控制平面区分开来。然而,在面向应用服务的直接交换网格服务网格的设计中,以松耦合和高速通信为主要目标,数字动能通过使用xPort智能代理大胆地将控制平面的一些功能吸收到智能代理中,同时将硬件资源的调度权返回到IaaS层,使得整个分布式体系结构设计更轻,数据交换(直接交换模型)由智能节点以直接点对点的方式进行。在最初的服务网格通用模型中,应用服务的微服务化似乎是松散耦合的。事实上,由于控制面板的集中通信设计,增加了网络间节点传输的压力。数字动态xPort智能代理大胆地选择了控制面板的原有功能,代之以智能代理之间完全的点对点直接通信,从而避免了由于太多的节点需要同时通过控制平面进行通信而造成的本地体系结构的性能瓶颈。

数字动能发布分布式智能代理xPort V1.0版

2.智能代理xPort允许应用程序(服务)通过进程内调用实现高速点对点通信

普通服务网格的侧卡只做消息转发,而xPort在满足这一功能的前提下,可以更好地满足金融服务(如投资和研究服务)之间的大量数据和传输。智能代理出口直接将应用服务加载到自己的进程中,使得应用服务和智能代理出口之间的通信不需要通过网络来避免频繁通信带来的高网络负载,而是直接通过内存进行交互。如下图所示,应用程序服务A和应用程序服务B都加载到了xPortA中。通信过程如下:应用服务A ->;xPortA ->。应用程序服务b即使两个应用程序服务加载在不同的导出端口中,也只需要启动一个网络调用。此外,它不同于原来的一对一智能代理->。作为应用服务的单一结构,xPort允许在一个进程中同时加载多个应用服务。如图所示,应用服务A、B和C可以同时加载到xPortA中。

数字动能发布分布式智能代理xPort V1.0版

利用xPort实现进程中的多应用服务调用

3.智能代理xPort具有内置的服务发现功能,可减少频繁访问注册发现服务的网络消耗

通用服务网格服务网格模型高度依赖于服务注册。应用服务必须通过智能代理连接到服务注册中心,以确保服务注册中心可以观察每个节点的状态变化。这种方法在大规模分布式应用中容易出现单点问题。随着应用服务节点数量的增加,服务注册中心的压力也会增加。一旦服务注册中心出现故障,所有应用服务都将暂停,无法工作。为了避免这个问题,xPort在智能代理中构建了一个服务发现功能。在应用程序服务将消息传递到xPort后,智能代理将首先查询内置的本地路由表,以查看是否有目标应用程序服务的地址。否则,它将仅从服务注册中心获取目标服务(应用程序)的地址。对于首次应用服务注册,只需要通过智能代理向服务注册中心进行一次注册,所有后续呼叫或应用服务目标的状态不需要通过服务注册中心。上图中的服务(应用)A向应用服务D发送消息。当xPortA和xPortB通过服务注册中心建立连接时,xPortA和xPortB将开始自动向对方发送各自的应用服务信息,不再需要通过服务注册中心。

数字动能发布分布式智能代理xPort V1.0版

4.xPort具有与消息队列的点对点通信功能

在通用服务网格体系结构中,应用服务、智能代理和智能代理本身都是对等通信。点对点通信要求被叫方在获得高性能的同时保持在线。在分布式场景中,应用服务可能会被中断一小段时间(或者非常短的时间)。xPort智能代理将允许这些临时中断发生,并将它们视为节点之间信息传输的有效生命周期。XPort通过改进和集成ZeroMQ技术来实现这一目标。在应用程序服务将消息发送到xPort之后,它将在本地为消息创建一个目标应用程序服务队列,然后应用程序服务将消息发送到目标应用程序服务。如果目标应用程序服务不在线,它将在消息的生命周期中存储在该队列中。当目标应用服务在线时,队列将继续完成消息传输。因此,只要智能代理之间的消息传输在其生命周期中得到处理,每个智能代理节点就不需要立即响应。与传统的点对点即时消息不同,xPort并不认为只要对方不在线,消息传输就会失败,而是允许消息在队列模式下进入等待响应状态,只要它仍然处于生命周期中。在提高点对点通信效率方面,xPort借鉴了RabbitMQ的思想,一个连接可以创建多个通道,大大减少了Xport之间的连接数量。xPort内置的节点智能连接算法使xPort智能代理能够根据服务节点之间的线路情况自动增加连接,并在空空闲时自动减少连接数量。

数字动能发布分布式智能代理xPort V1.0版

5.xPort支持多线程编程模型和Actor编程模型

在通用服务网格体系结构中,智能代理(侧车)仅用作消息代理。xPort允许在实现消息代理功能的同时将应用程序服务加载到自己的进程中,因此它具有应用程序服务的调度功能。为了满足高并发的使用场景,xPort进一步提供了两种并发模型,线程池和Actor。线程池并发模型中多线程之间的交互是通过共享内存来实现的,多线程通过共享来实现消息同步的目的。这种方法大大提高了响应速度,减少了延迟,但多线程编程模型难以保证应用的正确性。这个问题需要通过锁之类的机制来解决,这将影响性能并容易导致死锁和其他问题。因此,xPort还提供了参与者并发模型。演员不是通过共享记忆交流,而是通过交流。演员的地位是由其自身维持的。其他线程不能直接调用执行元,而是将调用消息发送给执行元,执行元执行操作,从而确保执行元内部的数据只能自己更改。这种编程模型大大降低了多线程编程的复杂性,并且易于编写高度并发的应用程序。xPort的对象可以根据业务选择不同的编程模式。

数字动能发布分布式智能代理xPort V1.0版

出口能解决什么问题?

作为数字动能分布式微服务框架DX Mesh的核心组件,XPort主要解决各种应用服务之间的数据、通信和控制问题,为多服务场景设计、复杂系统建设和中台服务架构方案提供了全新的实现思路。使用智能代理xPort实现的业务互联将为大规模业务系统的建设和具有复杂业务逻辑的核心系统的研发带来革命性的变化:

数字动能发布分布式智能代理xPort V1.0版

1.简化业务结构& ndash通过xPort访问模式将复杂的服务结构解耦,快速实现应用模块化。

2.以组织的形式来看待企业,而不是进行庞大臃肿的大规模结构设计。

3.通过智能代理,企业不再考虑统一设计,而是独立设计,甚至动态业务逻辑设计。它们是相互关联和独立的。

4.智能代理形成的分布式服务组可以实现快速部署和快速迁移。

5.通过智能代理,可以实现异构开发语言之间的通信。

6.该系统已从集中式设计转变为网络化、基于节点的分布式设计,这可以无限期地扩展业务系统。

7.智能代理的分布式接入体系结构对传统的PaaS集中式接入体系结构提出了挑战,但成本较低,新业务接入速度快,旧业务系统不需要拆卸和更换。

来源:罗马观察报

标题:数字动能发布分布式智能代理xPort V1.0版

地址:http://www.l7k9.com/gcbyw/548.html