使用“扫一扫”即可将网页分享至朋友圈。
数字动能发布分布式智能代理xPort V1.0
继发布面向量化金融的C++分布式xRPC通讯框架后,数字动能再发布用于分布式服务框架的智能代理xPort v1.0。xPort智能代理完全由C++编写,支持数字动能的xRPC通讯协议,主要用于实现多应用服务在分布式服务框架(如Service Mesh服务网格)的智能调度和管理功能。xPort v1.0智能代理的发布,标志着数字动能将掌握下一代分布式微服务架构-Service Mesh的核心开发技术。利用最新的分布式微服务架构,数字动能可具备搭建多元异构业务中台、实现复杂业务解耦和跨业务间通讯、满足多业务场景交付的能力。
一、xPort是什么?
智能代理,也叫Side Car,既是新一代分布式微服务框架-Service Mesh服务网格架构的基石构件,也是Service Mesh数据平面和控制平面的核心管理组件。
ISTO的Service Mesh通用模型
xPort是数字动能的Service Mesh核心组件“智能代理”(也叫Side Car)。xPort以分布式通讯框架xRPC为主要通讯协议,它主要负责Service Mesh服务网格节点间的数据平台与控制平面的管理。服务网格-Service Mesh被视为下一代基于分布式思路的微服务架构,它提出了利用全新的分布式、轻量级设计的Sidecar(以下称智能代理)部署模式替代原来庞大的层级式、堆叠式的集中服务框架。应用服务间的数据通讯将由智能代理接管,不再需要关注通信和控制细节,信息可在服务网格间高速通讯。而对于系统级别的功能调用,应用服务单元也无需再去关心如何调度,完全由智能代理负责数据平台和控制平面的协调。这种改进将把业务代码和技术实现进一步解耦,技术架构的变动对业务代码的影响也进一步减少。利用智能代理进行应用服务间信息通讯的方式是Service mesh服务网格设计的核心思路,数字动能提出的Direct Exchange Mesh服务网格架构对比ISTO经典Service Mesh模型更轻量级,主要针对金融行业的大数据传输、复杂计算和高速传输需求进行了场景针对设计。其智能代理xPort完全自主研发,采用大量创新设计。
数字动能的Service Mesh 改进模型
二、智能代理xPort v1.0有什么特点?
1、智能代理通讯不再经过通用模型的控制面板而是直接数据交换模式
Service Mesh通用模型中,智能节点(Side Car)区分了数据平面和控制平面。但在面向应用服务,以松耦合和高速通讯为首要目标的Direct Exchange Mesh服务网格设计中,数字动能利用xPort智能代理大胆把控制平面的部分功能下沉至智能代理内部,同时把硬件资源的调度权交回给IaaS层,让整个分布式架构设计更轻量级,以智能节点直接点对点方式进行数据交换(Direct Exchange Model)。在原Service Mesh通用模型中,应用服务的微服务化看似松耦合,实际上由于控制面板的集中通讯设计,反而加重了网络间节点传输的压力。数字动能的xPort智能代理大胆取舍了原来控制面板的功能,改为智能代理间完全点对点直接通讯,从而避免过多的节点需要同时经过控制平面通讯所产生的原生架构性能瓶颈。
2、智能代理xPort允许应用(服务)通过进程内调用的方式实现高速点对点通讯
普通Service Mesh的SideCar只是做了消息转发,xPort在满足该功能的前提下,可以更好的满足金融业务(如投研业务)间大量数据和传输。智能代理xPort直接把应用服务加载到自身的进程内, 这样应用服务和智能代理xPort的通讯无需再通过网络避免了频繁通讯产生的网络高负载,而是直接通过内存交互。如下图,应用服务A和应用服务B都是加载在xPortA的,通讯流程为:应用服务A -> xPortA -> 应用服务B。即使两个应用服务加载在不同的xPort,也只需要发起一次网络调用即可。另外,不同于原来一对一的智能代理->应用服务的单一结构,xPort允许多个应用服务同时在进程内加载。如图,应用服务A,B,C可同时通过加载在xPortA中。
利用xPort实现进程内多应用服务调用
3、智能代理xPort内置服务发现功能,降低对注册发现服务频繁访问的网络消耗
通用Service Mesh服务网格模型对服务注册中心的依赖度很高,应用服务通过智能代理必须和服务注册中心保持连接,以确保服务注册中心能观测到各个节点的状态变化。这种方式在大规模的分布式应用中容易产生单点问题,随着应用服务节点的数量增加,服务注册中心的压力会随之变大,一旦服务注册中心发生故障,所有的应用服务都将被挂起无法工作。xPort为避免此问题,在智能代理中内置了服务发现功能。当应用服务把消息传递给xPort后,智能代理会先查询内置的本地路由表,查看是否有目标应用服务的地址,如果没有才会从服务注册中心获取目标服务(应用)的地址。对于首次应用服务注册,只需要通过智能代理向服务注册中心做一次性注册,后面的所有调用或应用服务目标的状态无需再通过服务注册中心。如上图的服务(应用)A发送消息给应用服务D,当xPortA和xPortB通过服务注册中心建立连接后, xPortA和xPortB会开始自动相互各自的应用服务信息,不再需要通过服务注册中心。
4、xPort具有带消息队列的点对点通讯功能
在通用Service Mesh架构中,应用服务和智能代理、智能代理自身相互之间均是点对点通讯。点对点通讯在获得高性能的同时,却要求被调用方必须保持在线。在分布式场景中,应用服务可能会出现短时间(或极短时间)的通讯中断现象。xPort智能代理将会允许这些临时中断现象的发生,并将其视为信息在节点间传输的有效生命周期。xPort通过改进并融入ZeroMQ的技术达到此目的。应用服务把消息传给xPort之后,会在本地创建该消息目标应用服务的队列,然后再由该应用服务把消息发送给目标应用服务;如果目标应用服务不在线,那么在消息的生命周期内会存放在这个队列里面,待目标应用服务上线,该队列会继续完成消息传输。因此,智能代理间的消息传输只要在其生命周期内被处理即可,并不要求各个智能代理节点必须立即响应。与原来传统点对点的即时信息通讯方式不一样,xPort在与应用服务和智能代理间的相互调用,并不认为只要对方不在线,消息传输就是失败的,而是允许消息只要还在生命周期内,都可以队列方式进入等待响应状态。在点对点通讯效率提升方面,xPort同时借鉴了RabbitMQ一个连接可以创建多个通道(channel)的思路,大大减少了xPort之间的连接数量。xPort内置的节点智能连接算法,可让xPort智能代理会根据服务节点间线路情况自动增加连接,在空闲时自动降低连接数量。
5、xPort同时支持多线程编程模型和Actor编程模型
通用Service Mesh的架构中,智能代理(Side Car)只作为消息代理所用,xPort在实现消息代理功能的同时,允许应用服务加载到自身进程,使其具备对应用服务的调度功能。为满足高并发的使用场景,xPort进一步提供了线程池和Actor两种并发模型。线程池并发模型的多个线程间交互是通过共享内存的方式进行的,多个线程对共享进行操作,达到同步消息的目的。这种方式极大提升响应速度,降低延时,但多线程编程模型难以保证应用运行的正确性。该问题需要用到锁等机制来解决,这将会影响性能,并且容易导致死锁等问题。因此,xPort同时提供了Actor并发模型。Actor不是通过共享内存来通信,而是通过通信来共享内存的。Actor的状态由自身来进行维护,其他线程不能直接对Actor发起调用,而是要把调用的消息发送给Actor,由Actor来执行操作,这样就可以保证Actor内部的数据只有由它自身进行改变。这种编程模型大大的降低多线程编程的复杂度,容易编写出高并发的应用程序。xPort的使用对象可以根据业务选择不同的编程模型即可。
三、xPort可以解决什么问题?
xPort作为数字动能分布式微服务框架DX Mesh的核心组件,主要解决各个应用服务间的数据、通讯和控制问题,为多业务场景设计,复杂系统构建和中台业务架构方案提供了全新的实现思路。利用智能代理xPort实现的业务间互联互通,将对大型业务系统构建和拥有复杂业务逻辑的核心系统研发带来革命性的改变:
1、业务架构简单化 – 复杂业务结构通过xPort接入方式进行解耦,快速实现应用模块化。
2、以组织形态看待业务,而不是进行庞大臃肿的大架构设计。
3、通过智能代理,业务间不再考虑统一设计,而是分立设计,甚至进行动态业务逻辑设计,彼此相互联系又各自独立。
4、智能代理所形成的分布式业务群可实现快速部署,快速迁移。
5、通过智能代理,可实现异构开发语言间的相互通讯。
6、系统从集中式设计变成网络化,节点化的分布式设计,可无限延申业务体系。
7、智能代理的分布式接入架构对传统的PaaS集中接入式架构发起了挑战,但成本更低,新业务接入迅速,旧业务系统无需推倒重来。
“金融日报”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服邮箱kf@jinrongribao.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
- 声音提醒
- 60秒后自动更新
中国8月CPI年率2.3%,预期2.1%,前值2.1%。中国8月PPI年率4.1%,预期4.0%,前值4.6%。
08:00【统计局解读8月CPI:主要受食品价格上涨较多影响】从环比看,CPI上涨0.7%,涨幅比上月扩大0.4个百分点,主要受食品价格上涨较多影响。食品价格上涨2.4%,涨幅比上月扩大2.3个百分点,影响CPI上涨约0.46个百分点。从同比看,CPI上涨2.3%,涨幅比上月扩大0.2个百分点。1-8月平均,CPI上涨2.0%,与1-7月平均涨幅相同,表现出稳定态势。
08:00【 统计局:从调查的40个行业大类看,8月价格上涨的有30个 】统计局:从环比看,PPI上涨0.4%,涨幅比上月扩大0.3个百分点。生产资料价格上涨0.5%,涨幅比上月扩大0.4个百分点;生活资料价格上涨0.3%,扩大0.1个百分点。从调查的40个行业大类看,价格上涨的有30个,持平的有4个,下降的有6个。 在主要行业中,涨幅扩大的有黑色金属冶炼和压延加工业,上涨2.1%,比上月扩大1.6个百分点;石油、煤炭及其他燃料加工业,上涨1.7%,扩大0.8个百分点。化学原料和化学制品制造业价格由降转升,上涨0.6%。
08:00【日本经济已重回增长轨道】日本政府公布的数据显示,第二季度经济扩张速度明显快于最初估值,因企业在劳动力严重短缺的情况下支出超预期。第二季度日本经济折合成年率增长3.0%,高于1.9%的初步估计。经济数据证实,该全球第三大经济体已重回增长轨道。(华尔街日报)
08:00工信部:1-7月我国规模以上互联网和相关服务企业完成业务收入4965亿元,同比增长25.9%。
08:00【华泰宏观:通胀短期快速上行风险因素主要在猪价】华泰宏观李超团队点评8月通胀数据称,今年二、三季度全国部分地区的异常天气(霜冻、降雨等)因素触发了粮食、鲜菜和鲜果价格的波动预期,但这些因素对整体通胀影响有限,未来重点关注的通胀风险因素仍然是猪价和油价,短期尤其需要关注生猪疫情的传播情况。中性预测下半年通胀高点可能在+2.5%附近,年底前有望从高点小幅回落。
08:00【中国信通院:8月国内市场手机出货量同比环比均下降】中国信通院公布数据显示:2018年8月,国内手机市场出货量3259.5万部,同比下降20.9%,环比下降11.8%,其中智能手机出货量为3044.8万部,同比下降 17.4%; 2018年1-8月,国内手机市场出货量2.66亿部,同比下降17.7%。
08:00土耳其第二季度经济同比增长5.2%。
08:00乘联会:中国8月份广义乘用车零售销量176万辆,同比减少7.4%。
08:00央行连续第十四个交易日不开展逆回购操作,今日无逆回购到期。
08:00【黑田东彦:日本央行需要维持宽松政策一段时间】日本央行已经做出调整,以灵活地解决副作用和长期收益率的变化。央行在7月政策会议的决定中明确承诺将利率在更长时间内维持在低水平。(日本静冈新闻)
08:00澳洲联储助理主席Bullock:广泛的家庭财务压力并非迫在眉睫,只有少数借贷者发现难以偿还本金和利息贷款。大部分家庭能够偿还债务。
08:00【 美联储罗森格伦:9月很可能加息 】美联储罗森格伦:经济表现强劲,未来或需采取“温和紧缩”的政策。美联储若调高对中性利率的预估,从而调升对利率路径的预估,并不会感到意外。
08:00美联储罗森格伦:经济表现强劲,未来或需采取“温和紧缩”的政策。美联储若调高对中性利率的预估,从而调升对利率路径的预估,并不会感到意外。
08:00美联储罗森格伦:鉴于经济表现强劲,未来或需采取“温和紧缩的”政策。
08:00