# wxb-dubbo **Repository Path**: chain_team/wxb-dubbo ## Basic Information - **Project Name**: wxb-dubbo - **Description**: wxb-dubbo 基于dubbo-2.5.3实现了consul registry, 增加了对spring boot的支持. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2018-01-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README `wxb-dubbo` 基于[dubbo-2.5.3](https://github.com/alibaba/dubbo/tree/dubbo-2.5.3)实现了`consul registry`, 增加了对`spring boot`的支持. 依赖: 依赖包 | 版本 | | --------------------|------------------|-----| spring-boot | 1.4.3.RELEASE | | spring | 4.3.5.RELEASE | | consul-api | 1.2.1 | | dubbo | 2.5.3 | | ### Quick Start maven依赖: ```xml com.source3g.dubbo spring-boot-starter-dubbo 1.0-SNAPSHOT com.source3g.dubbo dubbo-registry-consul 1.0-SNAPSHOT ``` #### 服务提供者(Provider): ```java public interface DemoService { String say(String msg); } @Service public class DemoServiceImpl implements DemoService { @Override public String say(String msg){ Assert.hasText(msg); return "Hello " + msg; } } ``` **application.yml** ```yaml spring: dubbo: application: name: ${spring.application.name} registry: register: true subscribe: false address: consul://192.168.103.203:8500 protocol: name: dubbo port: -1 threads: 10 monitor: protocol: registry application: name: demo-provider ``` #### 服务消费者(Consumer) 消费者注解配置 ```java @RestController public class DemoController { @Reference private DemoService demoService; @GetMapping("/say") public String say(String msg){ return demoService.say(msg); } } ``` 消费者`推荐`配置: ```java @Configuration @AutoConfigureAfter(DubboAutoConfiguration.class) @EnableConfigurationProperties(DubboProperties.class) public class DubboConfig { @Autowired private DubboProperties dubboProperties; @Bean public DemoService demoService(){ ReferenceConfig reference = new ReferenceConfig(); reference.setApplication(dubboProperties.getApplication()); reference.setRegistry(dubboProperties.getRegistry()); reference.setInterface(DemoService.class); reference.setMonitor(dubboProperties.getMonitor()); return reference.get(); } } @RestController public class DemoController { @Autowired private DemoService demoService; @GetMapping("/say") public String say(String msg){ return demoService.say(msg); } } ``` 为何推荐后一种配置? 显式的创建Reference有利于将Bean托管给Spring,并对当前项目内同一个接口的引用统一管理。 **application.yml** ```yaml spring: dubbo: application: name: ${spring.application.name} registry: register: true subscribe: true address: consul://192.168.103.203:8500 protocol: name: dubbo port: -1 threads: 10 monitor: protocol: registry consumer: timeout: 5000 health: true #健康检查 application: name: demo-consumer ```