前言
两个月前,刚接触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、引入依赖
代码语言:javascript复制 <dependency>
<groupId>org.github.keking</groupId>
<artifactId>quarkus-dubbo-rpc-ext</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
2、添加dubbo配置
代码语言:javascript复制#dubbo
quarkus.dubbo.name = kl
quarkus.dubbo.registr-addr=nacos://nacos-pre.xxx.com:8848
quarkus.dubbo.protocol.name = dubbo
quarkus.dubbo.protocol.port = 20330
dubbo使用
以上两个步骤已经完成了dubbo的集成了,做到了和Spring环境下的一致体验,用法也是和官方的用法一模一样,只是博主集成的是dubbo2.7.6以上的版本,所有注解稍微有点变化。另,目前服务注入和服务暴露注解的属性设置只支持了部分,如(group、timeout),以下是引入服务和暴露服务的例子
引入服务
代码语言:javascript复制@Singleton
@Startup
public class ConfigService {
@DubboReference(check = false)
Client client;
@PostConstruct
public void print(){
System.out.println(client.list("kl"));
}
}
暴露服务
代码语言:javascript复制@DubboService(interfaceClass = ServiceApi.class)
public class ServiceImpl implements ServiceApi {
@Override
public String hello(String name) {
return "hello" name;
}
}
interface ServiceApi {
String hello(String name);
}