HSF概述

news/2025/3/29 5:32:21/

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

文章目录

      • 概述
      • HSF架构
      • 功能
      • 应用开发方式

概述

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

HSF架构

HSF作为一个纯客户端架构的RPC框架,没有服务端集群,所有HSF服务调用均是通过服务消费方(Consumer)与服务提供方(Provider)点对点进行。为了实现整套分布式服务体系,HSF还需要依赖以下外部系统。

在这里插入图片描述

  • 服务提供方
    服务提供方绑定了12200端口,用于接受请求并提供服务,同时将地址信息发布到地址注册中心。

  • 服务消费方
    服务消费者通过地址注册中心订阅服务,根据订阅到的地址信息发起调用,地址注册中心不参与调用。

  • EDAS地址注册中心
    HSF依赖注册中心进行服务发现,如果没有注册中心,HSF只能完成简单的点对点调用。
    服务提供端无法将服务信息对外暴露,服务消费端可能已经明确了待调用的服务,但是无法获取该服务。因此注册中心是服务信息的中介,为服务提供了注册与发现的功能。

  • EDAS持久化配置中心
    持久化的配置中心用于存储HSF服务的各种治理规则,HSF客户端在启动的过程中向持久化配置中心订阅服务治理规则,如路由规则、归组规则、权重规则等,从而根据规则对调用过程的选址逻辑进行干预。

  • EDAS元数据存储中心
    元数据指HSF服务对应的方法列表以及参数结构等信息。元数据对HSF的调用过程不会产生影响,因此元数据存储中心是可选的。由于服务运维的便捷性,HSF客户端在启动时会将元数据上报到元数据存储中心,方便服务运维。

  • EDAS控制台
    EDAS控制台打通了服务地址注册中心、持久化配置中心、元数据存储中心等,为用户提供了服务运维功能,包括服务查询、服务治理规则管理等,提高HSF服务研发的效率、运维的便捷性。

功能

HSF作为分布式RPC服务框架,支持多种服务的调用方式。

  • 同步调用
    HSF客户端默认以同步调用的方式消费服务,客户端代码需要同步等待返回结果。

  • 异步调用
    对于服务调用的客户端,并非所有HSF服务都需要同步等待返回结果。HSF提供异步调用,帮助客户端无需同步阻塞在HSF调用上。HSF的异步调用,有Future调用和Callback调用2种。

  • Future调用
    客户端在需要获取调用的返回结果时,通过HSFResponseFuture.getResponse(int timeout)主动获取结果。

  • Callback调用
    Callback调用利用HSF内部提供的回调机制,在指定HSF服务消费完毕拿到返回结果时,HSF框架会回调用户实现的HSFResponseCallback接口,客户端通过回调通知的方式获取结果。

  • 泛化调用
    对于一般的HSF调用来说,HSF客户端需要依赖服务的二方包,通过依赖二方包中的API进行编程调用,获取返回结果。但是泛化调用不需要依赖服务的二方包,可以发起HSF调用、获取返回结果。在平台型的产品中,泛化调用的方式可以有效减少平台型产品的二方包依赖,实现系统的轻量级运行。

  • 调用链路Filter扩展
    HSF内部设计了调用过滤器,能够主动发现用户的调用过滤器扩展点,将其集成到HSF调用链路中,便于扩展方对HSF的请求进行扩展处理。

应用开发方式

使用HSF框架开发应用有Ali-Tomcat和Pandora Boot两种方式。

  • Ali-Tomcat:依赖Ali-Tomcat和Pandora,提供了完整的HSF功能,包括服务注册与发现、隐式传参、异步调用、泛化调用和调用链路Filter扩展。应用程序须以WAR包方式部署。
  • Pandora Boot:依赖Pandora,提供了比较完整的HSF功能,包括服务注册与发现、异步调用。应用程序编译为可运行的JAR包并部署即可。

http://www.ppmy.cn/news/506409.html

相关文章

教你用Python控制摄像头录制视频~

导语 ​Python如何下载网页上的图片呢? 哈喽哈喽铁汁萌~今天小编给大家分享另一个Python应用小程序,就是:用Python控制摄像头录制视频! 感兴趣的小伙伴耐心往下看哦👇👇✨,学会了你也可以做一个…

HFH

http://hi.csdn.net/jiashie

Arduino+蜂鸣器实现黑人抬棺的音乐

先上代码 #define NOTE_F1 350 #define NOTE_F2 393 #define NOTE_F3 441 #define NOTE_F4 495 #define NOTE_F5 556 #define NOTE_F6 624 #define NOTE_F7 661 #define NOTE_0 0 #define NOTE_FL1 175 #define NOTE_FL2 196 #define NOTE_FL3 221 #define NOTE_FL4 234 #def…

2022-11-15 vue笔记-路由vue-router(四) 路由守卫(又称路由拦截,导航守卫)的定义以及示例

文章目录 0.路由的概念1.路由守卫的定义定义官方解释路由守卫的分类钩子函数 2.路由守卫的使用场景3.语法:router.beforeEach((to,from,next) > {}4.路由守卫示例:(接前例)为点击Center路由的操作判断是否已登录router.index.jsviews/Login.vue结果 0.路由的概念 路由其实是…

F - Hammer 2

F - Hammer 2(ABC273f) 题意 高桥是数轴的起源。高桥想在坐标达到目标X. 此外,还有n墙壁和n锤在数轴上。 在坐标是 Y1…Yn 是类型的墙1…n分别。 最初,高桥无法翻墙。 在坐标Z1…Zn ​​​ 是类型的锤子1 、2 、…,n,分别。…

hdf4

#include "mfhdf.h" #pragma comment (lib, "mfhdf.lib") // 打开hdf4文件 // > 0 成功 SDstart // 关闭hdf4文件 SDend // 查询相关属性 // > -1 成功,返回索引 SDfindattr // 读取属性定义 // SUCCEED 成功 SDattrinfo // 读取…

hFE和hfe有什么不同?

Mako:我们已经学习了有关晶体管的工作原理,晶体管的放大作用就是由小的 输入得到大的输出吧? Doc:这种说法还稍微有点欠缺,应 该说成用小的输入控制大的输出更为合适。如果只关注晶体管的电流,就 可以这样考虑,用极小的基极电流IB控制 大的集电极电流I。通常,基极电…