HSF简介

article/2025/10/5 4:42:47

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

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

产品架构
HSF 作为一个纯客户端架构的 RPC 框架,本身是没有服务端集群的,所有的 HSF 服务调用都是服务消费方(Consumer)与服务提供方(Provider)点对点进行的。然而,为了实现整套分布式服务体系,HSF 还需要依赖以下外部系统。
在这里插入图片描述
地址注册中心
HSF 依赖注册中心进行服务发现,如果没有注册中心,HSF只能完成简单的点对点调用。因为作为服务提供端,没有办法将自己的服务信息对外发布,让外界知晓;作为服务消费端,可能已经知道需要调用的服务,但是无法获取能够提供这些服务的机器。而注册中心就是服务信息的中介,提供服务发现的能力。

在阿里巴巴集团内部,地址注册中心的角色是由 ConfigServer 承担的。

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

在阿里巴巴集团内部,持久化配置中心的角色是由 Diamond 承担的。

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

在阿里巴巴集团内部,元数据存储中心的角色是由 Redis 承担的。

HSF 控制台
HSF 控制台通过打通地址注册中心 ConfigServer、持久化配置中心 Diamond、元数据存储中心 Redis,为用户提供了一些列服务运维功能,包括服务查询、服务治理规则管理、服务测试、服务 Mock、单机运维等,旨在提高 HSF 服务研发的效率、运维的便捷性。

在阿里巴巴集团内部,HSF 控制台的角色是由 HSFOPS 承担的。

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

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

异步调用
对于服务调用的客户端来说,并不是所有的 HSF 服务都需要同步等待返回结果的。对于这些服务,HSF 提供异步调用的形式,让客户端不必同步阻塞在 HSF 调用操作上。HSF 的异步调用,有 2 种:

Future 调用:客户端在需要获取调用的返回结果时,通过 HSFResponseFuture.getResponse(int timeout) 主动获取结果。
Callback 调用:Callback 调用利用 HSF 内部提供的回调机制,当指定的 HSF 服务消费完毕拿到返回结果时,HSF 框架会回调用户实现的 HSFResponseCallback 接口,客户端通过回调通知的方式获取结果。
泛化调用
对于一般的 HSF 调用来说,HSF 客户端需要依赖服务的二方包,通过依赖二方包中的 API 进行编程调用,获取返回结果。而泛化调用是指不需要依赖服务的二方包,从而发起 HSF 调用、获取返回结果的方式。在一些平台型的产品中,泛化调用的方式可以有效减少平台型产品的二方包依赖,实现系统的轻量级运行。

HTTP 调用
HSF 支持将服务以 HTTP 的形式暴露出来,从而支持非 Java 语言的客户端以 HTTP 协议进行服务调用。

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

产品优势
高性能的网络通信
在网络通信层面,HSF 采用开源的高性能、异步事件驱动的 NIO 框架 Netty 作为网络通信框架。
在协议层面,HSF 2.x 做了大量优化,使用了更适用于 RPC 场景的 RPCRemoting 协议替换了 HSF 1.x 中的 TBRemoting 协议,性能有了大幅提高。目前,HSF 在物理机上的压测数据约为 30w QPS。
无侵入的代理服务
HSF 利用了 Java 语言的代理机制,将协议封装、选址、远程调用等一系列 RPC 逻辑进行了封装,对用户透明。用户在使用 HSF 进行远程服务调用时,只需要进行简单的 Spring 配置,就可以专注于自己的业务逻辑,编码方式与本地调用没有任何区别。

强大的服务管控
HSF 配套的控制台(HSFOPS)提供了丰富的服务管控功能,例如:

服务查询:提供多种维度的服务查询功能,展示服务的实时状态。
服务治理:提供多种服务治理规则的管理功能,如路由规则、归组规则、同机房规则、权重规则等,让用户通过配置服务治理规则,完成服务集群的管理、流量的划分。
服务测试:提供快速测试、调用服务的能力,用户只需通过在页面上输入服务调用的参数,即可方便的完成一次 HSF 服务的调用,提升研发效率。
服务 Mock:提供 HSF 服务的 Mock 能力,使用时无需关注服务端是否存在,只需要在 HSFOPS 上配置好 Mock 规则,HSF 客户端即可通过 hsf-mock 插件获取配置的 Mock 数据,并且对代码没有入侵。
应用场景
HSF 诞生于阿里巴巴内部诸多系统进行服务化改造的诉求,也就是说 HSF 本身就是对应用服务化进行支撑的框架。一般意义上,一个公司的业务系统发展脉络基本都是类似的:从单个应用到多个应用,从本地调用到远程调用,随着发展需要对远程服务进行高效的资源管理,这个过程中,RPC框架解决了主要的技术问题。

因此,如果你希望自己的应用可以进行服务化改造,将单个巨型应用拆分成多个职责分明的基础服务应用,进而将这些基础服务提供给更多上层应用使用,那么,HSF 将会是你最佳的选择。


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

相关文章

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

线索到现金(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.制定项目章程 编写项目章程的过程,通过发布项目章程,…

大学生创新项目管理系统

word完整版可点击如下下载>>>>>>>> 大学生创新项目管理系统.rar_创新项目管理系统-互联网文档类资源-CSDN下载内容包括详细设计文档word版,附带开题报告和相关PPT等文档,供大家参考学习。也可在本博客主页找到创新项目管理系统更…

项目质量管理过程

项目质量管理包括执行组织确定质量政策、目标与职责的各过程和活动,从而使项目满足其预定的需求。项目质量管理在项目环境内使用政策和程序,实施组织的质量管理体系;并以执行组织的名义,适当支持持续的过程改进活动。项目质量管理…

软件项目管理

目录 前言项目管理概述项目与软件项目项目管理与软件项目管理项目管理知识体系过程管理与软件项目管理的关系软件项目管理过程 项目初始-项目确立项目立项项目招投标项目授权 敏捷开发总结scrum模型——迭代式增量软件开发过程术语文档scrum过程 XP模型 项目初始——生存期生存…

软件项目全流程管理

1、背景(个人絮叨,只想看干货的请直接跳转至第二节) 本人工作8年,最初以研发身份进入软件行业,1年后内部转岗,开始接触项目管理、产品管理,一切从0开始。 当了两年助理,期间自学了…

项目管理-产品开发流程

一个产品的开发离不开项目管理,在之前的几家公司中,实实在在的遇到的几个现实问题,也是目前很多小公司存在的问题。 老板想开发一款产品,但是不知道从何入手,到处在找方案,平时工作明明很多事情要做&#…

禅道项目管理流

禅道项目管理流程 1、禅道项目管理流程图 2、基本步骤 1、添加账号 2、创建产品 3、创建需求 4、创建项目,关联产品,设置团队 5、关联需求 6、分解任务 7、创建bug 8、提交测试 9、创建发布 3、创建需求 模板:作为禅道用户,我…

测试管理及项目测试流程

目录 基于需求测试管理文件压缩项目1.项目启动,介入了解需求2.需求分析3.制定测试方案(计划策略)4.测试执行流程5.编写测试用例6.测试执行7.输出测试报告8.版本发布9.项目总结 练习:百度云盘测试用例 基于需求测试管理 测试目标&…

使用禅道管理项目流程

使用禅道管理项目流程 1 添加该流程中的角色并设置其部门 以管理员身份登录。进入组织视图选择部门维护。在部门维护页面,维护公司的组织结构即可。 部门创建之后,下一步的操作就是往系统中添加用户。步骤如下: 进组织视图选择用户列表然后…

一个完整的项目管理流程包括什么?

项目管理流程一般包括为五个部分: 项目的启动、项目的计划、项目的实施、项目检测与控制过程、项目的收尾。每个阶段都有一组不同的任务、目标和特定的截止日期。 ​一个项目遵循这样的流程实施,基本就会顺利完成。 1 项目启动 项目管理第一阶段称为…