Dubbo服务和EDAS服务互调

来源:互联网 发布:贵金属行情分析软件 编辑:程序博客网 时间:2024/06/06 05:09

1.HSF调用Dubbo

1.1 EDAS项目和Dubbo项目要求

EDAS只支持war包形式的Web项目,通过Ali-tomcat启动

Dubbo项目没有限制,这里采用war包,通过普通tomcat启动,版本tomcat8

1.2 调用方式

方法:dubbo服务注册到zkhsfzk中调用dubbo服务

详解:

1.2.1在当前应用中加入不低于1.5.1edas-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中的服务:invokeType="hsf"

② 只注册/订阅ZooKeeper中的服务: invokeType="dubbo"

③ 双订阅/注册: invokeType="hsfdubbo"

1.2.4创建应用时,需要选择不低于3.0版本的容器,然后上传启动即可。

说明:这里容器的版本是taobao-hsf.sar版本,taobao-hsf.sarversion.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="dubbo"port="20880"/>
<!-- 声明需要暴露的服务接口-->
<dubbo:serviceinterface="com.ouyeel.dubbo.test.TestService"ref="testService"group="test" version="2.0.0"/>
<beanid="testService"class="com.ouyeel.dubbo.test.impl.TestServiceImpl"/>

注:hsf调用dubbo服务,dubbo提供服务时协议需要为dubbo,其他协议暂不支持

2.HSF配置(客户端配置)

<!-- hsfzk中获取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,dubbozk中调用hsf服务

详解:

hsf提供服务,充当服务端;dubbo消费hsf服务,充当消费端。服务端配置步骤如下:

2.2.1在当前应用中加入不低于1.5.1edas-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="hsfdubbo"

2.2.4创建应用时,需要选择不低于3.0版本的容器,然后上传启动即可。

说明:这里容器的版本是taobao-hsf.sar版本,taobao-hsf.sarversion.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注册服务至zkedas中心-->
<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调用zkhsf服务:HSF提供者提供的服务groupversion都指定-->
<dubbo:referenceid="platCityService"interface="com.ouyeel.shgt.service.test.PlatCityService"
                 group="hsf_test"version="2.0.0"check="false"
/>

原创粉丝点击