关于 HSF框架 (一)简单介绍

2023-11-03 15:48
文章标签 简单 介绍 框架 hsf

本文主要是介绍关于 HSF框架 (一)简单介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HSF介绍


HSF全称 high speed frameworkd, 是Alibaba内部使用的RPC框架,最初与Dubbo进行内部竞争,由于多方面的原因最终选择了HSF。
主要原因如下:

HSF代码量少一些,轻量一些,代码量大概2/3, Dubbo设计更加全面功能更多,更容器扩展和替换开源组件。
HSF的netty + hession传输性能更高, Dubbo内部filter过多也进一步降低RPC的性能。
HSF需要Jboss容器绑定,侵入更大,需要定制classloader等内部组件,dubbo更容器部署在通用Java环境。
HSF的比较特点性能更高,更多内部定制化的组件绑定,让RPC的性能降到最低,运维成本降到最低,对立阿里来说是重要的。
Dubbo特点是功能全面并且对开源组件的扩展更加容易,方便二次开发。所以比较适合推广到开源生态,因此阿里决定重新维护开源Dubbo社区提升影响力。
HSF是一个点对点的调用框架,不存在通信的总线和服务集群。


HSF主要架构


地址注册中心(服务发现)
注册中心就是服务的提供方需要指定服务本身的服务名称等一些服务注册信息.并将该服务注册到注册中心,做到服务发现的功能。
与开源社区的zookeeper做服务发现一样的道理。在阿里内部现在采用的叫configServer的中间件进行维护,该节点就是内存存储,不持久化。
配置服务器
rpc调用可能还有一些运维上的需求,例如超时以及版本号与不同环境的隔离.路由规则,权重等等有该节点进行控制,现在由diamond配置中间件承担。
元数据持久化节点(统一管理)
元数据就是给运维提供方便,属于非必要节点,能够统一的管理服务,做到实时的监控运维等工作。
HSOPS控制台
基于3去做到可视化的运维工具。
服务提供者
服务消费者
如图:
在这里插入图片描述

主要调用逻辑
步骤如下:

服务提供者启动hsf容器,上报服务信息到服务注册中心.
服务提供方上报元数据信息。
服务消费方启动hsf容器,拉取提供者信息.
拉取配置服务信息进行调用。


HSF的服务注册有很多种,包括最早的xml,需要绑定alitomcat的sar环境。
后面支持lightAPI的方式直接main函数的启动不需要spring容器.
再到现在springboot注解注入的方式。
逐渐做到了与本地调用十分类似的使用方式。

 

demo

这里演示最简单的注册与调用服务的方式

/**
* ligthAPI的方式
*/
ServiceFactory serviceFactory = ServiceFactory.getInstance();
XXService xxService = (XXService) serviceFactory.consumer("XXService").service("XXService").version("1.0.0.daily").group("HSF").subscribe();UmsResult<Void> result = xxService.request(request);

总结


HSF作为阿里内部高性能的RPC框架,其优点是轻量,高性能,运维成本低的特性,为大规模集群的应用提供了好的基础。
如果要完成更完善的分布式系统的服务治理等功能需要更多外围的组件,这些可能需要二次开发如果需要比较完整的生态dubbo或则spring boot比较好的一点
因此不同的场景选择不同的框架和组件才是硬道理。

 

参考:

https://blog.csdn.net/micro_hz/article/details/86507317

 

 

 

 


 

这篇关于关于 HSF框架 (一)简单介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/339215

相关文章

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.