阿里巴巴分布式服务框架HSF

阿里巴巴分布式服务框架HSFHSF称之为高速服务框架HSF(High-speedServiceFramework),是在阿里巴巴广泛使用的分布式RPC服务框架。HSF连通不同的业务系统,解耦系统间的实现依赖。HSF从分布式应用的层面,统一了服务的发布与调用方式,从而帮助用户更加方便、快速地开发分布式应用,以及提供或使用公

大家好,欢迎来到IT知识分享网。

阿里巴巴分布式服务框架HSF

 

HSF称之为高速服务框架HSF(High-speed Service Framework),是在阿里巴巴广泛使用的分布式RPC服务框架。

HSF连通不同的业务系统,解耦系统间的实现依赖。HSF从分布式应用的层面,统一了服务的发布与调用方式,从而帮助用户更加方便、快速地开发分布式应用,以及提供或使用公共功能模块。HSF为用户屏蔽了分布式领域中的各种复杂技术细节,如远程通讯、序列化实现、性能损耗、同步与异步调用方式的实现等。

HSF服务框架包含以下主要组件

服务提供者

在服务框架中真正提供服务功

能实现的应用实例,为了保障服务提供的高可用性,一般均是集群部署。每一个HSF的应用均是以War包的形式存在,运行在阿里巴巴优化定制后的Tomcat容器中,在Tomcat容器层已经集成了HSF服务框架对服务提供者或服务调用者进行配置服务器发现、服务注册、订阅、失效转移等相关功能,所以不管是在服务提供者还是调用者开发时,只需要进行服务相关的配置操作,应用中无需引入任何HSF相关的Jar依赖包。

服务调用者

作为服务的消费者,大多数也是以WAR应用包的方式运行在Tomcat容器中,在阿里巴巴集团内部也有一部分是基于C/C++、PHP、Node.js等语言开发的服务调用者。

地址服务器

在HSF服务框架中肩负着给服务提供者和服务调用者提供部署环境中所有配置服务器和Diamond服务器的服务器列表信息,是由Nginx(是一个高性能的HTTP和反向代理服务

器)提供该服务能力。

配置服务器。

配置服务器主要负责记录环境内所有服务发布(服务提供者的IP地址和服务端口信息)和服务订阅(服务调用者的IP地址和服务端口信息)信息,并将服务相关信息推送到服

务节点上。为了追求服务发布和订阅的推送效率,所有的服务发布和订阅信息均是保存在内存中。

Diamond服务器

本质上,Diamond服务器是一个通用的统一配置管理服务(类似于Zookeeper),给应用提供统一的配置设置和推送服务,使用场景非常广泛,在阿里巴巴内部有很多产品在需要进行配置的保存和获取时都会使用Diamond服务器。

服务节点对配置服务器列表的获取。

服务调用者和服务提供者在随着Tomcat容器启动后,会以域名(比如“xxx.tbsite.net”)的方式获取到可用的地址服务器,通过向地址服务器分别发送获取服务器列表的方式,在容器启动完成后,就已经在该服务节点上获取到了配置服务器和Diamon服务器的IP列表信息。

服务的注册发布

作为服务提供者,当获取到配置服务器的服务器列表后,则向配置服务器发送当前应用中包含的服务提供者相关信息(这些信息均是从应用的配置文件中获取到的,比如服务的接口类全名、服务版本、所属服务组等信息),连同当前服务器的IP地址、服务端口等信息进行服务注册发布.

·服务的订阅

当作为服务调用者的应用启动时,同样在获取配置服务器列表后,就进行与配置服务器的交互,发送服务消费者相关信息(同样包含了服务的接口全名,服务版本、所属服务组)到配置服务器进行服务的订阅服务规则的推送(如果需要)。

如果没有上文提到对于服务安全管控、流量控制等需求的时候,对于Diamond服务器的使用并不是必需的,在有这样的需求场景时,可通过Diamond服务器提供的规则设置界面,对指定服务的服务提供者和调用者设置相关的规则,一旦保存规则后,则此规则配置将会在5秒内推送到与所设置服务相关的服务节点上。

服务交互

在应用进行业务请求处理过程中,出现了服务调用者对服务提供者的调用时,服务调用者会从已经保存在该应用节点上的服务提供者服务器列表中选择(阿里巴巴内部使用随机模式)其中一台进行服务请求的发送,服务交互期间完全是服务调用者和服务提供者间两台服务器间的操作,无需通过中间服务器的中转。

 

*********************************************************************************************

【如果文字看累了,可b站搜索“沙皮狗2021”,用听的方式领略知识的魅力】

传送门 :https://space.bilibili.com/407643589

【微信公众号】: 沙皮狗2021

*********************************************************************************************

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31697.html

(0)

相关推荐

发表回复

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

关注微信