springboot集成dubbo注解版的示例代码

网友投稿 371 2023-01-20


springboot集成dubbo注解版的示例代码

工作中用springboot搭建项目,用dubbo做远程调用。springboot提倡注解配置和java配置,本文是基于dubbo最新版本2.6.3,使用注解方式的示例。

本文假定你已经有springboot和dubbo的使用经验。

dubbo简介

dubbo是阿里巴巴开源的分布式服务框架,一般使用dubbo的RPC调用。但2016年停止维护,现在使用的2.8.4版本其实是当当维护的dubbox。2017年8月阿里又重启维护dubbo,并从2.5.7版本开始支持注解配置。

准备

此示例使用gradle构建,关于gradle的安装配置,请参考官方文档。

zookeeper作为dubbo服务发现的基础组件,关于zookeeper的安装启动,请参考官方文档。

项目结构如下

springboot-dubbo

├─settings.gradle

├─build.gradle

├─springboot-dubbo-api

│ │─build.gradle

│ └─src

│ └─main

│ └─java

│ └─org

│ └─aaron

│ └─springboot

│ └─dubbo

│ └─api

│ DemoService.java

├─springboot-dubbo-consumer

│ │─build.gradle

│ └─src

│ └─main

│ ├─java

│ │ └─org

│ │ └─aaron

│ │ └─springboot

│ │ └─dubbo

│ │ └─consumer

│ │ DemoController.java

│ │ DubboConfiguration.java

│ │ DubboConsumerApplication.java

│ │

│ └─resources

│ application.yml

└─springboot-dubbo-provider

│─build.gradle

└─src

└─main

├─java

│ └─org

│ └─aaron

│ └─springboot

│ └─dubbo

│ └─provider

│ DemoServiceImpl.java

│ DubboConfiguration.java

│ DubboProviderApplication.java

└─resources

application.yml

引入外部依赖

compile('com.alibaba:dubbo:2.6.3')

compile('org.apache.zookeeper:zookeeper:3.4.9')

compile('org.apache.curator:curator-framework:4.0.0')

compile('org.springframework.boot:spring-boot-starter-web')

配置

1.生产者dubbo配置

@Configuration

public class DubboConfiguration {

@Bean

public RegistryConfig registryConfig() {

RegistryConfig registryConfig = new RegistryConfig();

registryConfig.setAddress("zookeeper://127.0.0.1:2181");

registryConfig.setClient("curator");

return registryConfig;

}

@Bean

public ApplicationConfig applicationConfig() {

ApplicationConfig applicationConfig = new ApplicationConfig();

applicationConfig.setName("sprintboot-dubbo-provider");

return applicationConfig;

}

@Bean

public ProtocolConfig protocolConfig() {

ProtocolConfig protocolConfig = new ProtocolConfig();

protocolConfig.setPort(12021);

protocolConfig.setName("dubbo");

return protocolConfig;

}

}

2.消费者dubbo配置

@Configuration

public class DubboConfiguration {

@Bean

public RegistryConfig registryConfig() {

RegistryConfig registryConfig = new RegistryConfig();

registryConfig.setAddress("zookeeper://127.0.0.1:2181");

registryConfig.setClient("curator");

return registryConfig;

}

@Bean

public ApplicationConfig applicationConfig() {

ApplicationConfig applicationConfig = new ApplicationConfig();

applicationConfig.setName("sprintboot-dubbo-consumber");

return applicationConfig;

}

@Bean

public ConsumerConfig consumerConfig() {

ConsumerConfig consumerConfig = new ConsumerConfig();

consumerConfig.setTimeout(3000);

return consumerConfig;

}

}

3.定义接口

public interface DemoService {

String sayHello();

}

4.生产者实现接口

import com.alibaba.dubbo.config.annotation.Service;

@Component

@Service(interfaceClass = DemoService.class, version = "1.0")

public class DemoServiceImpl implements DemoService {

@Override

public String sayHello() {

return "Hello Springboot Dubbo";

}

}

5.消费者调用接口

import com.alibaba.dubbo.config.annotation.Reference;

@RestController

public class DemoController {

@Reference(interfaceClass = DemoService.class, version = "1.0")

private DemoService demoService;

@RequestMapping("/hello")

public String sayHello() {

return demoService.sayHello();

}

}

启动

本地启动zookeeper

依次启动springboot-dubbo-provider,springboot-dubbo-cwXCXdmqmsonsumer

浏览器访问 localhost:8080/hello

看到返回'Hello Springboot Dubbo' 即表示调用成功

其他

示例源码(github)

Dubbo注解配置


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot 在idea中实现热部署的方法
下一篇:SpringCloud 中使用 Ribbon的方法详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~