前言
两个月前,刚接触Quarkus时,博主就尝试过Quarkus和Dubbo的集成,利用Quarkus编程时定义Bean的方式,成功的实现了Dubbo服务的引入和暴露,只是方式有点不智能,那篇博文《Quarkus集成Dubbo Rpc远程通讯框架(8)》的阅读量远高于其他的博文,说明Dubbo使用的人还是蛮多的。那个时候也预言过,会有更方便使用的自动集成方案出来。不过,随着博主对Quarkus的深入研究后,发现Quarkus真的很灵活。所以博主自己先搞出来了
Quarkus技术交流QQ群:871808563
本文扩展源码:https://github.com/kekingcn/quarkus-dubbo-rpc
quarkus:https://quarkus.io/guides/
dubbo:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
快速集成
1、引入依赖
<dependency> <groupId>org.github.keking</groupId> <artifactId>quarkus-dubbo-rpc-ext</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
2、添加dubbo配置
#dubbo quarkus.dubbo.name = kl quarkus.dubbo.registr-addr=nacos://nacos-pre.xxx.com:8848 quarkus.dubbo.protocol.name = dubbo quarkus.dubbo.protocol.port = 20330dubbo使用
以上两个步骤已经完成了dubbo的集成了,做到了和Spring环境下的一致体验,用法也是和官方的用法一模一样,只是博主集成的是dubbo2.7.6以上的版本,所有注解稍微有点变化。另,目前服务注入和服务暴露注解的属性设置只支持了部分,如(group、timeout),以下是引入服务和暴露服务的例子
引入服务
@Singleton @Startup public class ConfigService { @DubboReference(check = false) Client client; @PostConstruct public void print(){ System.out.println(client.list("kl")); } }暴露服务
@DubboService(interfaceClass = ServiceApi.class) public class ServiceImpl implements ServiceApi { @Override public String hello(String name) { return "hello" + name; } } interface ServiceApi { String hello(String name); }