您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
励精图治:Dubbo分布式服务治理
 
  203  次浏览      50
 2021-8-18 
 
编辑推荐:
本篇文章主要介绍了服务框架演变历程、Dubbo分布式框架和服务治理等内容。
来自于DIST上海数慧 ,由火龙果软件Anna编辑、推荐。

伴随着业务和需求的不断扩充与完善,一张图、多规等产品的服务规模不断扩大,如此众多的服务,从设计、开发、运行、编排、维护到治理,每一个环节都需更深入仔细的思考,才能使应用系统顺利运转起来。如今,常规的垂直应用架构已无法满足多产品的大型系统,亟需一个治理服务的系统架构,来降低系统的复杂度和耦合度,提升组件的内聚性、敏捷性。因此,分布式服务架构势在必行。

服务框架演变历程

上海数慧服务框架经历了从单一应用逐步拆分和重组,继而演变成面向服务架构的过程。

1、单一应用架构:当服务量很小的时候,通过一个应用,将所有功能都部署在一起,以减少部署节点和实施成本。在这一架构中,用于简化增删改查工作的数据访问框架(ORM)是关键。

2、垂直应用架构:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,所以需要将应用拆成互不相干的几个应用,降低功能之间的耦合度,以提升效率。在这一架构中,用于加速前端页面开发的Web框架(MVC)是关键。

3、分布式服务架构:当垂直应用越来越多,应用之间的交互不可避免,所以需要将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,从而使前端应用能更快速地响应多变的市场需求。在这一架构中,用于提高业务复用及整合的分布式服务框架(RPC)是关键。

4、面向服务架构:当服务越来越多,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心,基于访问压力实时管理集群容量,以提高集群利用率。在这一架构中,用于提高机器利用率的资源调度和治理中心(SOA)是关键。

Dubbo分布式框架和服务治理

Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持。

01 Dubbo架构

Dubbo作为基于RPC的通信框架在底层封装了NIO 通信框架Netty、常用的序列化反序列化机制,并为应用层提供了线程池和消息调度器,使得业务可以快速实现跨进程的远程通信。对于使用者而言,不需要关心底层的通信细节,只需要关注业务实现,极大的提升了应用的开发效率。

- Dubbo的整体架构 -

在这一架构中,服务启动容器负责启动、加载、运行服务提供者;服务提供者在启动时,会向注册中心注册自己提供的服务;而服务消费者在启动时,会向注册中心订阅自己所需的服务,与此同时注册中心会返回服务提供者地址列表给消费者,如果服务提供者地址有变更,注册中心将基于长连接推送变更数据给消费者。在注册和订阅的过程中,服务消费者和提供者,在内存中会累计调用次数和调用时间,定时每分钟发送一次统计数据到服务监控中心。

在这一架构中,服务启动容器复制启动、加载、运行服务提供者;服务注册中心为服务提供者提供服务注册,为服务消费者提供服务订阅,订阅结果通过地址列表反馈。当服务提供者的地址变更时,注册中心将基于长连接推送变更数据给消费者,来动态修改消费者的订阅列表中的服务地址。在服务的调用过程中,服务消费者和提供者,在内存中会累计调用次数和调用时间,定时每分钟发送一次统计数据到服务监控中心。监控中心获取统计数据,可以为管理人员提供服务分析和管理的依据。

简单来讲,服务启动容器就比如是微信(也可以是APP、Web版)平台,服务提供者就比如是具体的微信公众号(DIST上海数慧),服务消费者是使用微信的个人用户,而服务注册中心就是微信订阅号(可以订阅多个公众号),服务监控中心就是微信官方订阅号的管理平台。当“DIST上海数慧”启用后,就会向微信订阅号进行注册,而个人用户通过关注的方式来订阅“DIST上海数慧”公众号。如果“DIST上海数慧”的名称或资料发生了更改,订阅号会自动的更新个人用户的订阅信息。这样个人用户就可以通过“DIST上海数慧”公众号来获取推文和消息。在个人用户阅读和浏览公众号信息的时候,服务监控平台会进行各种公众号的管理和运行统计,用于后续的微信业务分析。

由服务注册中心、服务提供者、服务消费者和服务监控中心协同运作构成了整个Dubbo的分布式服务架构。

02 Dubbo服务治理

Dubbo分布式架构在带来便利的同时,也产生服务管理的需求,比如管理服务之间的调用链、依赖关系、服务的负载均衡、监控等等,下表详细列出了其功能特点和分布式需求。

为了更好地管理这些服务,Dubbo提供了分布式集群环境下的服务治理平台。且提供了一系列的服务地址路由规则、服务降级和负载均衡的管理操作。

- Dubbo框架的服务管理策略 -

Dubbo框架的服务管理策略:通过服务路由、负载均衡算法和容错机制,从服务提供者列表中选出具体的提供者。

提供者列表:由多个相同服务提供者的集群信息列表,它的值可能是动态变化的。如来自注册中心推送变更导致的变化。

提供者集群:旨在将提供者列表中的多个提供者伪装成一个提供者,对上层透明,伪装过程设有容错机制,当调用提供者失败后,会根据集群容错策略重试另一个提供者。在调用具体的提供者之前,会根据服务路由和负载均衡对提供者进行筛选和过滤。

服务路由:负责从多个提供者列表中按路由规则选出子集,包括读写分离,应用隔离等。

负载均衡:负责从多个提供者中按照负载均衡算法选出具体的提供者为消费者提供服务,若调用失败,则需要重选。

具体的提供者:是一个具体可调用的服务,里面封装了提供者的地址及和相应的接口信息。

Dubbo分布式服务治理框架是一套完整的服务管理方案,用来协助上海数慧的系统和产品进行服务化改造,并根据客户的具体应用场景构造更适合的服务化体系,将服务化的价值发挥到极致。基于分布式服务框架,使开发者能够将精力集中于应用层的逻辑开发中,从而极大地提升研发效率和系统可靠性。

   
203 次浏览       50
相关文章

企业架构、TOGAF与ArchiMate概览
架构师之路-如何做好业务建模?
大型网站电商网站架构案例和技术架构的示例
完整的Archimate视点指南(包括示例)
相关文档

数据中台技术架构方法论与实践
适用ArchiMate、EA 和 iSpace进行企业架构建模
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

云平台与微服务架构设计
中台战略、中台建设与数字商业
亿级用户高并发、高可用系统架构
高可用分布式架构设计与实践

最新活动计划
配置管理方法、实践与应用 10-11[北京]
持续集成测试与最佳实践 10-23[北京]
嵌入式软件架构设计与实例 10-25[北京]
嵌入式linux内核、驱动开发、性能优化 10-28[北京]
高可用架构设计与实践 10-29[北京]
C#高级开发技术 11-8[北京]
 
最新文章
架构设计-谈谈架构
实现SaaS(软件及服务)架构三大技术挑战
到底什么是数据中台?
响应式架构简介
业务架构、应用架构与云基础架构
最新课程
软件架构设计方法、案例与实践
从大型电商架构演进看互联网高可用架构设计
大型互联网高可用架构设计实践
企业架构师 (TOGAF官方认证)
嵌入式软件架构设计—高级实践
更多...   
成功案例
某新能源电力企业 软件架构设计方法、案例与实践
中航工业某研究所 嵌入式软件开发指南
某轨道交通行业 嵌入式软件高级设计实践
北京 航天科工某子公司 软件测试架构师
北京某领先数字地图 架构师(设计案例)
更多...