HSF

阿里云 EDAS-HSF 用户指南

        https://www.cnblogs.com/longshiyVip/p/4823305.html

HSF以高性能网络通信框架为基础,提供了诸如服务发布与注册,服务调用,服务路由,服务鉴权,服务限流,服务降级和服务调用链路跟踪等一系列久经考验的功能特性

总体来说其提供的功能及一些实现基础:
1.标准Service方式的RPC
  1)、Service定义:基于OSGI的Service定义方式
  2)、TCP/IP通信:
   IO方式:nio,采用mina框架
   连接方式:长连接
   服务器端有限定大小的连接池
   WebService方式
  3)、序列化:Hessian序列化机制
2.软件负载体系
3.模块化、动态化
4.服务治理

第一步:

首先要将HSF功能加进工程,是maven的话,在pom.xml里要依赖HSF:

  1. <dependency>  
  2.             <groupId>com.taobao.hsf</groupId>  
  3.             <artifactId>hsf.connector.spring</artifactId>  
  4.             <version>xxx</version>  
  5.  </dependency>  

第二部:

提供者方要做的工作包括:

1. 将interface的代码打成Jar包,放进maven仓库中,供使用者下载使用,而具体代码实现则不需要放进jar包中,使用者只能调用,无法看见具体实现。
2.在对应的HSF的配置文件里,将提供的服务提供出来(基于spring的bean配置):

Xml代码   收藏代码
  1. <bean id="xxxServiceImpl" class="xxx.xxxServiceImpl" />  
  2. <bean id="xxxServiceProvider"     class="com.taobao.hsf.app.spring.util.HSFSpringProviderBean" init-method="init">  
  3.      <property name="serviceInterface">  
  4.         <value>xxx.xxxService</value>  
  5.      </property>  
  6.      <property name="target">  
  7.         <ref bean="xxxServiceImpl" />  
  8.      </property>  
  9.      <property name="serviceName">  
  10.         <value>xxxService</value>  
  11.      </property>  
  12.      <property name="serviceVersion">  
  13.         <value>xxx</value>  
  14.      </property>  
  15.      <property name="serviceGroup">  
  16.         <value>HSF</value>  
  17.      </property>  
  18. </bean>  

 服务提供成功后,在HSF服务管理中心可以查看到这个HSF服务。

第三部:

消费者方要做的工作:

Xml代码   收藏代码
  1. <bean name="xxxService" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean" init-method="init">  
  2.      <property name="interfaceName" value="xxx.xxxService" />  
  3.      <property name="version" value="xxx" />  
  4. </bean>  
 这样这个service就可以使用了。


HSF 实现原理

1.提供服务的大致流程如下:
• server启动时候向configserver注册
• client启动时候向configserver请求list
• client缓存list,发现不可用的server,从缓存中remove
• configserver通过心跳包维护可用server的list
• list有更新的时候,configserver通过带version的报文通知client更新


HSF的实现方式可以理解为是C/S的架构,但是和传统的C/S架构相比还是有很大的不同,HSF没有真正的服务器,每个应用都可以成为服务的调用方和提供方。具体工作方式如下:

ConfigServer:远程调用对端的地址就是由ConfigServer 来推送的,这样用户只需要配置自己的服务端或者消费端,不需要对自己的地址进行管理。

Diamond:持久化的配置中心,用于配置服务调用的规则。

服务:服务是调用方和提供方交流的依凭,一般是一个接口,表示一个业务行为以及相关的数据含义。通过使用HSFApiProviderBean能够暴露一个服务,将机器的地址注册到configserver,并且能够通过12200端口进行服务提供,通过HSFApiConsumerBean能够包装出一个客户端,它是服务接口的一个代理,并且它从configserver上订阅了服务的地址列表,能够在这个列表上完成随机调用,做到负载均衡与HA((High Available,高可用性群集)。

网络通信:HSF的底层网络通信是使用netty框架实现的,是基于epoll的NIO的网络通讯框架,HSF在此使用的是长连接,通过合理的服务部署及负债均衡,基本不存在I/O方面的限制


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值