HSF提供的是分布式服务开发框架,taobao内部使用较多,总体来说其提供的功能及一些实现基础:
1.标准Service方式的RPC
2.软件负载体系
3.模块化、动态化
4.服务治理
这里简单介绍下其使用:
首先要将HSF功能加进工程,是maven的话,在pom.xml里要依赖HSF:
- <</span>dependency>
-
<</span>groupId>com.taobao.hsf</</span>groupId> -
<</span>artifactId>hsf.connector.spring</</span>artifactId> -
<</span>version>xxx</</span>version> -
</</span>dependency>
1. 将interface的代码打成Jar包,放进maven仓库中,供使用者下载使用,而具体代码实现则不需要放进jar包中,使用者只能调用,无法看见具体实现。
2.在对应的HSF的配置文件里,将提供的服务提供出来(基于spring的bean配置):
- <</span>bean
id="xxxServiceImpl" class="xxx.xxxServiceImpl" /> - <</span>bean
id="xxxServiceProvider" class="com.taobao.hsf.app.spring.util.HSFSpringProviderBean" init-method="init"> -
<</span>property name="serviceInterface"> -
<</span>value>xxx.xxxService</</span>value> -
</</span>property> -
<</span>property name="target"> -
<</span>ref bean="xxxServiceImpl" /> -
</</span>property> -
<</span>property name="serviceName"> -
<</span>value>xxxService</</span>value> -
</</span>property> -
<</span>property name="serviceVersion"> -
<</span>value>xxx</</span>value> -
</</span>property> -
<</span>property name="serviceGroup"> -
<</span>value>HSF</</span>value> -
</</span>property> - </</span>bean>
而在消费者方要做的工作:
- <</span>bean
name="xxxService" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean" init-method="init"> -
<</span>property name="interfaceName" value="xxx.xxxService" /> -
<</span>property name="version" value="xxx" /> - </</span>bean>
HSF的缺点是其要使用指定的JBoss等容器,还需要在JBoss等容器中加入sar包扩展,对用户运行环境的侵入性大,如果你要运行在Weblogic或Websphere等其它容器上,需要自行扩展容器以兼容HSF的ClassLoader加载。 taobao有类似的其他框架Dubbo,介绍见。
和淘宝HSF相比,Dubbo的特点是什么?
2.
3.
4.
Dubbo在安全机制方面是如何解决的?
Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。