时间:2021-05-19
工作中用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配置
@Configurationpublic 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配置
@Configurationpublic 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;@RestControllerpublic class DemoController { @Reference(interfaceClass = DemoService.class, version = "1.0") private DemoService demoService; @RequestMapping("/hello") public String sayHello() { return demoService.sayHello(); }}启动
其他
示例源码(Github)
Dubbo注解配置
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用SpringBoot与Dubbo集成,这里我之前尝试了使用注解的方式,简单的使用注解注册服务其实是没有问题的,但是当你涉及到使用注解的时候在服务里面引用事务
本文介绍了Springboot整合Dubbo之代码集成和发布,分享给大家,具体如下:1.boot-dubbo-api相关打开boot-dubbo-api项目,正
这篇文章主要介绍了springboot使用dubbo和zookeeper代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
为什么要写这个小工具如果你用过Spring-boot来提供dubbo服务,相信使用中有很多“不爽”的地方。既然使用springboot,那么能用注解的地方绝不用
本文主要介绍了SpringBoot配置排序依赖技巧,分享给大家,具体如下:SpringBoot-被错误使用的注解我自己曾经在SpringBoot中集成通用Map