开发者社区> 问答> 正文

怎么配置 Dubbo


目前 Dubbo 在 EDAS 中运行支持两种配置服务提供者和服务消费者的方式:XML 配置、注解配置。本文档提供这两种方式的配置示例。

XML 文件配置方式


以下是 Dubbo XML 配置示例,设置正确则不需要做修改即可直接放入 EDAS 中运行。

服务生产者 XML 配置

  1. [backcolor=transparent]```xml
  2. [backcolor=transparent]    <?xml version="1.0" encoding="UTF-8"?>
  3. [backcolor=transparent]    <beans xmlns="http://www.springframework.org/schema/beans"
  4. [backcolor=transparent]    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  5. [backcolor=transparent]    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  6. [backcolor=transparent]    http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
  7. [backcolor=transparent]    <dubbo:application name="edas-dubbo-demo-provider" ></dubbo:application>
  8. [backcolor=transparent]    <bean id="demoProvider" class="com.alibaba.edas.dubbo.demo.provider.DemoProvider" ></bean>
  9. [backcolor=transparent]    <dubbo:registry address="zookeeper://127.0.0.1:2181" ></dubbo:registry>
  10. [backcolor=transparent]    <dubbo:protocol name="dubbo" port="20880" threadpool="cached"
  11. [backcolor=transparent]    threads="100" ></dubbo:protocol>
  12. [backcolor=transparent]    <dubbo:service delay="-1" interface="com.alibaba.edas.dubbo.demo.api.DemoApi"
  13. [backcolor=transparent]        ref="demoProvider" version="1.0.0" group="dubbogroup" retries="3" timeout="3000"></dubbo:service>
  14. [backcolor=transparent]    </beans>
  15. [backcolor=transparent]```

[backcolor=transparent]注意:
  • 可选配置包括 threadpool、threads、delay、version、retries、timeout,其他均为必选配置。配置项可以任意调换位置。
  • Dubbo 的 RPC 协议支持多种方式,如 RMI, hessian 等,但是目前 EDAS 的适配方案只支持了 Dubbo 协议,如:<dubbo:protocol name="dubbo" port=“20880”>,否则会引起类似于:”com.alibaba.dubbo.config.ServiceConfig service [xx.xx.xxx] contain xx protocal,HSF not supportted” 的错误发生。


服务消费者 XML 配置

  1. [backcolor=transparent]<?[backcolor=transparent]xml version[backcolor=transparent]=[backcolor=transparent]"1.0"[backcolor=transparent] encoding[backcolor=transparent]=[backcolor=transparent]"UTF-8"[backcolor=transparent]?>
  2. [backcolor=transparent]<beans[backcolor=transparent] [backcolor=transparent]xmlns[backcolor=transparent]=[backcolor=transparent]"http://www.springframework.org/schema/beans"
  3. [backcolor=transparent]xmlns:xsi[backcolor=transparent]=[backcolor=transparent]"http://www.w3.org/2001/XMLSchema-instance"[backcolor=transparent] [backcolor=transparent]xmlns:dubbo[backcolor=transparent]=[backcolor=transparent]"http://code.alibabatech.com/schema/dubbo"
  4. [backcolor=transparent]xsi:schemaLocation[backcolor=transparent]=[backcolor=transparent]"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  5. [backcolor=transparent]http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"[backcolor=transparent]>
  6. [backcolor=transparent]<dubbo:application[backcolor=transparent] [backcolor=transparent]name[backcolor=transparent]=[backcolor=transparent]"edas-dubbo-consumer"[backcolor=transparent] [backcolor=transparent]/>
  7. [backcolor=transparent]<dubbo:registry[backcolor=transparent] [backcolor=transparent]address[backcolor=transparent]=[backcolor=transparent]"zookeeper://127.0.0.1:2181"[backcolor=transparent] [backcolor=transparent]/>
  8. [backcolor=transparent]<dubbo:reference[backcolor=transparent] [backcolor=transparent]id[backcolor=transparent]=[backcolor=transparent]"demoProviderApi"
  9. [backcolor=transparent]interface[backcolor=transparent]=[backcolor=transparent]"com.alibaba.edas.dubbo.demo.api.DemoApi"[backcolor=transparent] [backcolor=transparent]version[backcolor=transparent]=[backcolor=transparent]"1.0.0"[backcolor=transparent] [backcolor=transparent]group[backcolor=transparent]=[backcolor=transparent]"dubbogroup"[backcolor=transparent] [backcolor=transparent]lazy[backcolor=transparent]=[backcolor=transparent]"true"[backcolor=transparent] [backcolor=transparent]loadbalance[backcolor=transparent]=[backcolor=transparent]"random"[backcolor=transparent]>
  10. [backcolor=transparent]<!-- 指定某个方法不用等待返回值 -->
  11. [backcolor=transparent]<dubbo:method[backcolor=transparent] [backcolor=transparent]name[backcolor=transparent]=[backcolor=transparent]"sayMsg"[backcolor=transparent] [backcolor=transparent]async[backcolor=transparent]=[backcolor=transparent]"true"[backcolor=transparent] [backcolor=transparent]return[backcolor=transparent]=[backcolor=transparent]"false"[backcolor=transparent] [backcolor=transparent]/>
  12. [backcolor=transparent]</dubbo:reference>
  13. [backcolor=transparent]<bean[backcolor=transparent] [backcolor=transparent]id[backcolor=transparent]=[backcolor=transparent]"demoConsumer"[backcolor=transparent] [backcolor=transparent]class[backcolor=transparent]=[backcolor=transparent]"com.alibaba.edas.dubbo.demo.consumer.DemoConsumer"
  14. [backcolor=transparent]init-method[backcolor=transparent]=[backcolor=transparent]"reviceMsg"[backcolor=transparent]>
  15. [backcolor=transparent]<property[backcolor=transparent] [backcolor=transparent]name[backcolor=transparent]=[backcolor=transparent]"demoApi"[backcolor=transparent] [backcolor=transparent]ref[backcolor=transparent]=[backcolor=transparent]"demoProviderApi"[backcolor=transparent]></property>
  16. [backcolor=transparent]</bean>
  17. [backcolor=transparent]</beans>

[backcolor=transparent]注意:
  • 可选配置包括 version、group、lazy、loadbalance、async、return,其他选项为必须。配置项可以任意调换位置。
  • 注册中心在 EDAS 中是不生效的,所有 Dubbo 的服务会自动注册到 EDAS 的配置中心,用户无需关心。
  • 由于 Dubbo 配置文件消费者可以指定多个分组,而 EDAS 目前只能通过 group 属性配置一个分组,无法指定多个分组。
  • 当有业务需要在程序启动过程中加载服务,则需要设置lazy=true,进行延迟加载


注解配置方式


从 EDAS 容器 V3.0 版本开始,已经对 Dubbo 原生注解进行支持了,用户无需进行注解转换 XML 即可使用 EDAS 服务。
[backcolor=transparent]兼容说明:
  • 服务发布注解: @Service
  • 服务订阅注解: @Reference

[backcolor=transparent]支持属性: group、version、timeout
[backcolor=transparent]使用方式: 在创建容器的时候,选择最新版本容器 V3.0 即可。

展开
收起
猫饭先生 2017-10-26 10:54:13 2048 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
What's new in Dubbo 2.7.6 立即下载
Apache Dubbo3 源码深入解读 立即下载
Dubbo 2.7.6 新特性 立即下载