1.HSF调用Dubbo
1.1 EDAS项目和Dubbo项目要求
EDAS只支持war包形式的Web项目,通过Ali-tomcat启动
Dubbo项目没有限制,这里采用war包,通过普通tomcat启动,版本tomcat8
1.2 调用方式
方法:dubbo服务注册到zk,hsf从zk中调用dubbo服务
详解:
1.2.1在当前应用中加入不低于1.5.1的edas-sdk依赖
<dependency>
<groupId>com.alibaba.edas</groupId>
<artifactId>edas-sdk</artifactId>
<version>1.5.1</version>
</dependency>
1.2.2指定zookeeper注册/订阅中心地址。指定方式主要包含以下2种:
a.启动JVM参数配置:
-Dhsf.registry.address=zookeeper://IP地址:端口
b.XML指定方式(推荐):
<hsf:registry address="zookeeper://IP地址:端口" />
1.2.3指定 ZooKeeper地址后,HSF应用若需要启用双注册/订阅,还需要设置调用参数invokeType
① 只注册/订阅ConfigServer 中的服务:www.thqpt.com invokeType="hsf"
② 只注册/订阅ZooKeeper 中的服务: invokeType="dubbo"
③ 双订阅/注册: invokeType="hsf,dubbo"
1.2.4创建应用时,需要选择不低于3.0版本的容器,然后上传启动即可。
说明:这里容器的版本是taobao-hsf.sar版本,在taobao-hsf.sar中version.properties文件可以查看sar包版本,如下:
sar=edas.public.sar.V3.0
1.2.5具体demo
1.Dubbo配置(服务端配置)
<!--提供方应用信息,用于计算依赖关系-->
<dubbo:applicationname="dubbo-provider" />
<!-- 使用zookeeper注册中心暴露服务地址-->
<dubbo:registryaddress="zookeeper://10.70.95.102:2181"/>
<!-- 用dubbo协议在20880端口暴露服务-->
<dubbo:protocolname=www.fencaiyule.cn/ www.thqpt.com "dubbo"port="20880"/>
<!-- 声明需要暴露的服务接口-->
<dubbo:serviceinterface="com.ouyeel.dubbo.test.www.dongfan178.com/ TestService"ref="testService"group="test" version="2.0.0"/>
<beanid="testService"class="com.www.huachengj1980.com ouyeel.dubbo.test.impl.TestServiceImpl"/>
注:hsf调用dubbo服务,dubbo提供服务时协议需要为dubbo,其他协议暂不支持
2.HSF配置(客户端配置)
<!-- hsf从zk中获取dubbo提供的服务-->
<hsf:registryaddress="zookeeper://10.70.95.102:2181"/>
<hsf:consumerid="testService"interface="com.ouyeel.dubbo.test.TestService"group="test"
version="2.0.0"invokeType="dubbo"></hsf:consumer>
2.Dubbo调用HSF
2.1 EDAS项目和Dubbo项目要求
EDAS只支持war包形式的Web项目,通过Ali-tomcat启动
Dubbo项目没有限制,这里采用war包,通过普通tomcat启动,版本tomcat8
2.2调用方式
方法:将hsf服务注册至zk中,dubbo从zk中调用hsf服务
详解:
hsf提供服务,充当服务端;dubbo消费hsf服务,充当消费端。服务端配置步骤如下:
2.2.1在当前应用中加入不低于1.5.1的edas-sdk依赖
<dependency>
<groupId>com.alibaba.edas</groupId>
<artifactId>edas-sdk</artifactId>
<version>1.5.1</version>
</dependency>
2.2.2指定zookeeper注册/订阅中心地址。指定方式主要包含以下2种:
a.环境变量指定:
-Dhsf.registry.address=zookeeper://IP地址:端口
b.XML指定方式(推荐):
<hsf:registry address="zookeeper://IP地址:端口" />
2.2.3指定 ZooKeeper地址后,HSF应用若需要启用双注册/订阅,还需要设置调用参数invokeType
④ 只注册/订阅ConfigServer 中的服务:invokeType="hsf"
⑤ 只注册/订阅ZooKeeper 中的服务: invokeType="dubbo"
⑥ 双订阅/注册: invokeType="hsf,dubbo"
2.2.4创建应用时,需要选择不低于3.0版本的容器,然后上传启动即可。
说明:这里容器的版本是taobao-hsf.sar版本,在taobao-hsf.sar中version.properties文件指定该pandora版本,如下:
sar=edas.public.sar.V3.0
dubbo配置参考网址:http://dubbo.io/user-guide/reference-xmlconf/dubbo-reference.html
2.2.5具体demo
1.HSF配置(服务端配置)
<!-- zk注册中心-->
<hsf:registryaddress="zookeeper://10.70.95.102:2181"/>
<!-- hsf注册服务至zk和edas中心-->
<hsf:providerid="platCityService"interface="com.ouyeel.shgt.service.test.PlatCityService"
ref="platCityServiceImpl"clientTimeout="20000"version="2.0.0"group="hsf_test"invokeType="dubbo,hsf"></hsf:provider>
2.Dubbo配置(客户端配置)
<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样-->
<dubbo:applicationname="dubbo.consumer"/>
<dubbo:registryaddress="zookeeper://10.70.95.102:2181"timeout="10000000"/>
<!-- dubbo调用zk中hsf服务:HSF提供者提供的服务group和version都指定-->
<dubbo:referenceid="platCityService"interface="com.ouyeel.shgt.service.test.PlatCityService"
group="hsf_test"version="2.0.0"check="false"/>