java的hsf高速框架,高速服务框架HSF

article/2025/10/5 4:37:08

一、简述

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

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

二、架构设计

03e4ded2927d

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

03e4ded2927d

1️⃣Provider——服务提供者

通常是某个业务系统,提供相关的业务服务,一般都是个服务集群。业务系统初期使用 HSF,通过引入 SDK 的方式。后期阿里定制化改造了容器(tomcat/docker),通过配置完成 HSF 的接入使用,作为架构中的服务提供方。对业务系统本身(war/jar)不造成侵入性。绑定了12200端口,用于接受请求并提供服务,同时将地址信息发布到地址注册中心。

2️⃣Consumer——服务消费者

通常也是某个业务系统集群,跟服务提供者非常类似,只是服务、消费角度区别。通过地址注册中心订阅服务,根据订阅到的地址信息发起调用,地址注册中心不参与调用。

3️⃣ConfigServer——配置服务器

HSF 依赖注册中心进行服务发现,如果没有注册中心,HSF 只能完成简单的点对点调用。因为作为服务提供端,没有办法将自己的服务信息对外发布,让外界知晓;作为服务消费端,可能已经知道需要调用的服务,但是无法获取能够提供这些服务的机器。而 ConfigServer 就是服务信息的中介,提供服务发现的能力。

注册与订阅

服务注册——在服务提供方启动时,完成该服务的注册——上报当前服务的 ip/port、服务类名方法名、版本号、分组等信息。

服务订阅——在服务消费方启动时,完成某些服务的订阅——通过订阅的服务标识(类名+方法名+版本号等),在内存中查找相关服务,一旦找到则将服务提供者的 IP 端口等信息推送给当前服务消费方,以便消费。

长连接与内存级

服务提供方与服务消费方均与配置服务器保持长连接,一旦服务提供方发生变化,会立即被通知,更新内存中的列表数据,并同步给订阅该服务的服务消费方。

4️⃣Diamond——EDAS 持久化配置中心

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

当需要时,用户通过在界面上设计规则,Diamond 会快速的将新的规则推送给相关的服务提供方。

5️⃣addressServer——地址服务器

地址服务器的职责是保存上文的 ConfigServer 与 Diamond 服务器的地址列表。在 consumer、provider 启动时,会首先以域名访问的方式访问地址服务器,从地址服务器获取到 ConfigServer 与 Diamond 服务器的地址列表信息,以便访问。

6️⃣EDAS 元数据存储中心

元数据是指 HSF 服务对应的方法列表以及参数结构等信息,元数据不会对 HSF 的调用过程产生影响,因此元数据存储中心也并不是必须的。但考虑到服务运维的便捷性,HSF 客户端在启动时会将元数据上报到元数据存储中心,以便提供给服务运维使用。元数据存储中心的角色是由 Redis 承担的。

7️⃣EDAS 控制台

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

完成初始化后,服务调用者内保存了相关的服务信息,通过内部设置的调用方式(如随机访问一台,权重等)可以进行点对点的调用。

其内部通过 NIO 多路复用(Netty)+Hessian 序列化实现 RPC 调用,使用 Hessian 主要是压测表现出稳定性以及高效的综合特性。

三、功能

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

1️⃣同步调用

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

2️⃣异步调用

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

①Future 调用

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

②Callback 调用

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

3️⃣泛化调用

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

4️⃣调用链路 Filter 扩展

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

四、应用开发方式

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

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

Pandora Boot:依赖 Pandora,提供了比较完整的 HSF 功能,包括服务注册与发现、异步调用。应用程序编译为可运行的 JAR 包并部署即可。


http://chatgpt.dhexx.cn/article/GWSloaaQ.shtml

相关文章

RPC中间件-HSF

目录 目标 版本 需要考虑什么 服务发布与订阅的流程 发布与订阅的入口类 服务的元数据 注册流程图示 服务器端服务映射结构 服务订阅的流程图示 消费者端的映射结构 消费者调用服务的流程 服务代理 协议模板服务 协议服务 消费者调用服务的流程图示 目标 针对淘…

HSF学习

一、HFS简介 1、 HFS其本质是一种RPC框架,用于服务的远程调用,定义唯一服务三元素:接口(serviceInterface)、版本(serviceVersion)、组(serviceGroup),类似m…

HSF概述

高速服务框架HSF(High-speed Service Framework),是在阿里巴巴广泛使用的分布式RPC服务框架。 文章目录 概述HSF架构功能应用开发方式 概述 HSF连通不同的业务系统,解耦系统间的实现依赖。HSF从分布式应用的层面,统一…

HSF架构原理

一.HSF的基本概念 HSF全称为High-Speed Service Framework,旨在为淘系的应用提供一个分布式的服务框架,HSF从分布式应用层面以及统一的发布/调用方式层面为大家提供支持,从而可以很容易的开发分布式的应用以及提供或使用公用功能…

HSF用户指南

用户指南 HSF(High-speed Service Framework),高速服务框架,是阿里系主要采用的服务框架,其目的是作为桥梁联通不同的业务系统,解耦系统之间的实现依赖。其高速体现在底层的非阻塞I/O以及优秀的序列化机制上,实现了同…

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

HSF称之为高速服务框架HSF(High-speed Service Framework),是在阿里巴巴广泛使用的分布式RPC服务框架。 HSF连通不同的业务系统,解耦系统间的实现依赖。HSF从分布式应用的层面,统一了服务的发布与调用方式&#xff0c…

HSF的原理分析

一.HSF的基本概念 HSF全称为High-Speed Service Framework,旨在为淘系的应用提供一个分布式的服务框架,HSF从分布式应用层面以及统一的发布/调用方式层面为大家提供支持,从而可以很容易的开发分布式的应用以及提供或使用公用功能…

HSF框架基本介绍

HSF介绍 HSF全称high speed frameworkd,是Alibaba内部使用的RPC框架,最初与Dubbo进行内部竞争,由于多方面的原因最终选择了HSF。 主要原因如下: HSF代码量少一些,轻量一些,代码量大概2/3, Dubbo设计更加全面功能更多…

HSF简介

产品概述 HSF (High-speed Service Framework),高速服务框架,是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。 HSF 作为阿里巴巴的基础中间件,联通不同的业务系统,解耦系统间的实现依赖。HSF 从分布式应用的层面,统…

企业流程篇--项目管理(七)

线索到现金(LTC): 介绍: ​ LTC-- Lead To Cash。即从线索到现金,端到端的项目管理流程。 ​ 1)LTC涵盖从线索到现金的所有项目阶段,是销售、工程、服务等业务主流程和人事、财务、项目管理、业绩管理等管理流程的集成。 ​ 2)把目标聚焦于满足客户需求、可交付、可回…

一个完整的软件项目管理流程包括什么?有什么软件项目管理工具?

软件项目管理全流程,及各环节方法,辅助工具。 项目的类型不同,其流程必然会不一样,关于通用项目管理的流程其他回答讲述已经非常完善(个人推荐这篇:泛项目管理流程包括哪些?)&#…

系统集成项目管理工程师知识点集锦

系统集成项目管理工程师知识点集锦 1. 项目的特点有哪些?2. 项目的组织方式有哪些?分别具有什么优缺点?3. 项目管理过程组有哪些?4. 怎么样才能成为一位优秀的项目经理?5. PMO的主要职能有哪些?6. 项目经理…

第4章 项目整体管理 与 第16章 项目变更管理

第4章 项目整体管理 与 第16章 项目变更管理 了解项目管理知识体系叙述的结构 子过程、ITTO、过程组、知识领域 什么是项目整体管理(P-187) 了解 项目整体管理:包括为识别、定义、组合、统一和协调各项目管理过程组的各种过程和活动而开展的过程与活动。兼具统一、…

项目范围管理

> # 范围管理 过程 输入 输出 工具 技术 项目范围管理 6个过程 1.编制范围管理计划过程 定义、确认、控制项目范围的过程进行描述 2.收集需求 为实现项目目标,明确、记录项目干系人相关需求的过程 3.定义范围 详细描述产品范围和项目范围,编制项目范围…

项目研发管理流程

之前公司我除了带架构和业务研发团队,PMO也在我这边管理,对于200多人的研发团队,下面介绍下整个研发管理流程,瀑布式开发模式,虽然比较慢,不过很稳,适合传统企业。 1、立项阶段 发起人提出需求&…

项目管理复习题

蓝字位注释,红字为错误原因,紫字为重点 本复习题链接:https://pan.baidu.com/s/1ZJ4l6mKxAt9dqhw0Qa58xA 提取码:j4jz 笔记:https://blog.csdn.net/weixin_42139734/article/details/108661001 第一章 一、填空题…

项目管理第四章项目整合管理

项目管理第四章项目整合管理 项目整合管理:项目整合管理包括为识别、定义、组合、统一与协调项目管理过程组的各过程进项目管理活动而进行的各种过程和活动。项目整合管理包括以下选择:资源分配,平衡竞争需求,研究各种备选方案&a…

软件项目管理知识点总结

软件项目管理 第1章 软件项目管理概述1、项目的基本概念(注意与日常运作的区分)和特征;2、软件项目及特征;3、项目管理的基本概念;4、项目管理知识体系(以2017年发布的PMBOK6的十个知识领域为准&#xff09…

项目管理工具推荐

文章目录 禅道官方说明功能特点 JIRA功能特点 TaigaWorktile功能特点 禅道 官方说明 禅道 项目管理软件 是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,实现了软件的完整生命周期管理。 细分需求、任务、…

项目整体管理

> 项目整体管理 定义 是对项目管理过程组中的不同过程和活动进行识别、定义、整合、统一、协调的过程 负责管理项目的需求、范围、进度、成本、质量、人力资源、沟通、风险和采购 主要有6个过程 1.制定项目章程 编写项目章程的过程,通过发布项目章程,…