网易首页 > 网易号 > 正文 申请入驻

实战 | 微服务架构的研究与应用

0
分享至

文 / 中国人民银行清算总中心 葛洪慧

随着新的业务场景和交易需求的不断涌现,单体架构难以满足快速实现新业务发展需要。近年来,基于云计算技术的分布式系统得到广泛应用,其特点是在架构层面具备更优秀的横向扩展和弹性伸缩能力。基于云计算的微服务技术架构,因其适应现代业务发展的技术特征,在分布式系统中得到广泛的应用,其可靠性与稳定性均得到验证。

技术特征

ThoughtWorks首席科学家总结亚马逊等互联网架构实践,首次提出了微服务架构的概念。著名架构师Adrian Cockcroft把微服务架构定义为面向服务的架构,它们由松耦合和具有边界上下文的元素组成。这里的边界上下文可理解为可以用通用IDL接口定义语言定义服务接口。因此,服务、服务接口和接口间通信构成微服务的体系架构。

从微服务概念可以看出,微服务有如下技术特征。特征1:微服务具有高内聚松耦合特征。Robert C.Martin的单一原则“把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来”很好地说明了高内聚性。特征2:微服务相对较小,解决性能问题更细粒度,对于密集型CPU需求或内存需求可分开部署,分别拓展。拆分现有业务时,微服务大小适中。微服务太小,服务间通信频繁,也增加运行维护复杂度。微服务太大,失去微服务的意义。特征3:微服务的自治性或独立性。微服务可独立部署、独立扩展、独立修改。其升级维护不影响其他服务的运行。微服务可多个实例运行,提高系统整体可靠性,单个微服务故障,可以进行隔离不影响整体可用性。特征4:技术异构性。在保证与其他服务接口不变情况下,可在某些服务中尝试新技术。特征5:可组合性或可重用性。基于相同软件产品线的业务系统,可通过组合重用相同的服务组件,构成新的业务系统。特征6:具备灵活应对需求变化能力,可实现持续交付和持续部署,更好地实现开发运维一体化。

关键技术

微服务的分布式事务管理是一项关键技术。在计算机科学理论中CAP定理指出,分布式系统的一致性、可用性和分区容错性只能满足三项中的两项。X/Open分布式事务处理模型(X/Open XA)是分布式事务管理的事实标准,XA使用两阶段提交来确保事务中的所有参与者都提交或回滚,能够保证分布式事务的ACID属性。微服务分布式事务管理的TCC模式是基于XA协议的应用层实现,能保证分布式事务的ACID属性。不过,目前有些TCC分布式事务管理机制对应用的侵入性较强,应用编程复杂,且部分系统软件产品不支持XA协议。那么,将插删改同一数据库的业务逻辑聚合在一个微服务中,避免出现分布式事务的一致性问题,也是一种实现方式。未来,TCC有望减少应用对事务的管理,也会有更多的软件支持XA协议。

微服务服务间通信是另一项关键技术。微服务间通信方式有同步通信和异步通信两种机制。同步通信是基于请求应答协议的远程调用,代表性有REST、gRPC等。由于网络是不可靠的,服务端可能会返回一个错误信息。因此,服务间采用同步通信方式,微服务框架应有服务治理中心和注册中心,实现局部故障处理和服务发现。异步通信方式一般是基于消息代理或消息,消息通道传递信息。消息代理应有控制消息并发、消息顺序和重复消息的管理机制。

微服务通信支持的编码/解码方式有文本和二进制方式。文本方式可读性好,编码后数据结构体大,传输效率低。Protocal Buffer是一种二进制编码方式,每个字段有编号和类型代码,消息接收方可跳过不可识别的字段提取所需字段,因此具有向前兼容特性,同时具有语言和平台无关性、更好的传输效率。在对性能要求较高的设计中应考虑选择基于二进制的编码方式。

系统结构

如图所示,以华为微服务引擎CSE构建为例。基于微服务架构设计的应用系统结构通常可以划分为应用软件层SaaS、公共服务层bPaaS、平台层PaaS、数据层DaaS和基础设施层IaaS。

图 总体架构图

CSE是Apache ServiceComb开源微服务架构的商业微服务应用管理平台,包含微服务服务注册、配置和治理中心。CSE集成在华为Fusionstage PasS平台,提供RPC协议,使用ProtoBuf做序列化编码,支持Docker容器运行。

使用领域驱动的设计思路,按照高内聚松耦合特征,将应用程序划分为不同的微服务,位于SaaS层。公共服务位于bPasS层。

PasS平台层通常集成多种引擎或组件,比如微服务引擎、云容器引擎、分布式消息中间件、分布式缓存中间件、分布式事务管理组件等。微服务引擎负责服务发现、服务配置、服务路由,多通信访问、服务容错、熔断、服务限流降级、服务隔离等服务治理功能。云容器引擎负责应用管理、应用编排、容器存储和IaaS适配。分布式缓存则提高热点数据访问加速,非关键数据或过程数据在缓存读写,降低数据库访问负荷。分布式消息中间件则可以通过消息队列,实现应用解耦和与第三方的互通或集成。华为Fusionstage PasS平台,提供应用软件开发流水和应用运维监控功能。

IaaS层通常基于OpenStack技术构成计算资源池、存储资源池。

DaaS层由数据库组成。

注意:上述系统结构中,如果IaaS层不使用分布式存储,也可以简化为使用Kubernets直接管理裸金属服务器,使得整体系统结构简单便于维护。

应用设计

在应用设计中,特别是对原有多个业务系统基于微服务的架构进行改造时,可以考虑在统一架构的基础上,把一些共用的业务逻辑,比如数据检查、加解密等提取出来,作为不同的单独的微服务,而归属于原业务系统自身的业务逻辑作为一个或几个微服务。这种公共微服务产品化的抽取,促进了不同业务系统的产品整合,减少了不同业务系统的应用程序冗余。

具有公共业务逻辑属性的微服务产品,因微服务技术本身支持独立性和技术异构性,这些产品可以独立演进,尝试不同的技术,以提升业务系统适应新技术能力。这类产品可由专门的团队研发和演进。

通常业务系统中并不是所有的业务逻辑都需要考虑分布式事务的一致性,特别是在数据库性能不受影响的情况下,可以将业务逻辑设计在一个微服务中,利用数据库的事务一致性来保证。所以,在选择微服务接口设计时,可以精细化的选择接口调用方式,对于确实需要同步调用以保证分布式事务一致性的选用同步调用接口设计,对于大部分业务逻辑可以采用异步调用接口设计,提高系统整体性能。

应用设计中,还应注意将具有强关联业务逻辑设计为一个微服务,减少微服务与微服务之间频繁的接口调用,微服务间调用接口清晰,微服务调用微服务的逻辑链不宜过长。

测 试

微服务产品的版本管理是基于语义化版本控制规范,和通常单体产品版本管理基于功能兼容性有所区别,更多的是基于接口修改是否兼容进行控制。因此在产品制版和测试时,需注意和单体一次制版一次部署整体测试不同,可以进行微服务产品的单独制版,单独部署,并注意测试其接口兼容性。

部 署

微服务实例可运行在容器中。根据应用功能、被调用的频率和需要的计算资源的大小,为微服务分配实例数量,提高系统整体性能。将同一微服务的不同实例运行在不同机柜上,提升系统整体可用性。比如可以将计算资源按机柜分成不同的高可用计算资源集群,每个集群划分为一定数量的节点,节点标签用微服务名命名,在分配标签时,遵循“具有相同节点标签的节点属于不同高可用计算资源集群”原则,提升可用性。

在金融业务系统面临转型发展关键时期,研究分布式微服务技术,利用国产商用或开源软件和硬件构建业务系统,提升系统整体风险防控能力是十分必要的。

(栏目编辑:韩维蜜)

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
台湾啦啦队女神,Dcup蜂腰撩人,名副其实的奶凶奶凶!

台湾啦啦队女神,Dcup蜂腰撩人,名副其实的奶凶奶凶!

健身迷
2024-11-04 16:18:15
北京知青参军当营长,50年后重返陕北看初恋,发现自己竟儿孙满堂

北京知青参军当营长,50年后重返陕北看初恋,发现自己竟儿孙满堂

民间精选故事汇
2024-12-03 12:10:11
好大口气!陆委会:中国大陆不得以赖清德的“出访”为由进行军演

好大口气!陆委会:中国大陆不得以赖清德的“出访”为由进行军演

橘色数码
2024-12-04 15:44:11
中国联通、中国电信再曝重磅消息

中国联通、中国电信再曝重磅消息

新浪财经
2024-12-03 23:08:05
极氪领克合并后将成新势力销量第一 理想小鹏都得让位

极氪领克合并后将成新势力销量第一 理想小鹏都得让位

手机中国
2024-12-04 16:13:13
卡塔尔大王妃出席国宴真贵气,卡米拉戴大珠宝被秒,幸好凯特躲了

卡塔尔大王妃出席国宴真贵气,卡米拉戴大珠宝被秒,幸好凯特躲了

DailyFlora
2024-12-04 12:38:12
突然!美国发动袭击

突然!美国发动袭击

中国基金报
2024-12-04 18:49:39
502胶溅入3岁男孩眼中,妈妈1分钟处理救了娃,医生:幸好你懂

502胶溅入3岁男孩眼中,妈妈1分钟处理救了娃,医生:幸好你懂

户外钓鱼哥阿勇
2024-11-17 11:49:09
1人死亡!北京地铁出事了!

1人死亡!北京地铁出事了!

美丽大北京
2024-12-03 21:01:31
真要走了?33岁奥斯卡哭成泪人,疑似告别 海港7年狂赚12亿拿5冠

真要走了?33岁奥斯卡哭成泪人,疑似告别 海港7年狂赚12亿拿5冠

风过乡
2024-12-04 00:06:31
遥遥落后了,平心静气看中美新一代驱逐舰的差距

遥遥落后了,平心静气看中美新一代驱逐舰的差距

万乘之尊
2024-12-03 17:10:02
一国企掌门人任职40个月,月均受贿51万余元

一国企掌门人任职40个月,月均受贿51万余元

中国基金报
2024-12-04 18:51:17
汪顺:感谢大家的厚爱,但不要给我做任何形式的应援

汪顺:感谢大家的厚爱,但不要给我做任何形式的应援

直播吧
2024-12-04 17:13:17
“千亿富豪”左晖因肺癌去世,留下1038亿身家,生不带来死不带去

“千亿富豪”左晖因肺癌去世,留下1038亿身家,生不带来死不带去

李律讲法
2024-12-03 20:30:03
43岁李小璐现身阿勒泰,宣传自己服装品牌,真人比电视上更好看

43岁李小璐现身阿勒泰,宣传自己服装品牌,真人比电视上更好看

南城无双
2024-12-04 01:07:43
韩国国防部长官金龙显向国民致歉,并表示已递交辞呈

韩国国防部长官金龙显向国民致歉,并表示已递交辞呈

环球网资讯
2024-12-04 17:49:09
詹娜这坐姿真豪迈,布克尽情地宠着她

詹娜这坐姿真豪迈,布克尽情地宠着她

视点历史
2024-11-04 00:05:05
中国常驻联合国代表傅聪:对美国未经协商强行安排“白头盔”代表与会通报表示遗憾

中国常驻联合国代表傅聪:对美国未经协商强行安排“白头盔”代表与会通报表示遗憾

环球网资讯
2024-12-04 08:35:37
台湾作家琼瑶:高考两度落榜,三度自杀,41岁插足别人婚姻

台湾作家琼瑶:高考两度落榜,三度自杀,41岁插足别人婚姻

陈意小可爱
2024-12-04 15:23:10
奇瑞造了一辆A9!正式量产,长得像帕拉梅拉,续航2000km,10来万

奇瑞造了一辆A9!正式量产,长得像帕拉梅拉,续航2000km,10来万

沙雕小琳琳
2024-12-04 17:03:08
2024-12-04 21:00:49
金融电子化
金融电子化
中国金融信息科技类主导期刊。
1942文章数 513关注度
往期回顾 全部

科技要闻

被字节起诉的实习生,写了AI顶会最佳论文

头条要闻

媒体:尹锡悦被逼成"独裁典型" 扔出政治"核弹"却哑火

头条要闻

媒体:尹锡悦被逼成"独裁典型" 扔出政治"核弹"却哑火

体育要闻

哈登,我不做大哥好多年

娱乐要闻

琼瑶在家中自杀离世,千字遗书曝光

财经要闻

牛市的悲歌

汽车要闻

表现够全能 柴油版二代哈弗H9或许更适合家用

态度原创

本地
房产
艺术
数码
公开课

本地新闻

云游中国|来伦布夏果感受充满Passion的人生

房产要闻

4.61亿!天价成交背后,看「侨鑫现象」再定义“最好的房子”

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

数码要闻

磐镭 HO5 迷你主机上市,售价 3999 元起

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版