Quarkus集成Dubbo框架扩展开源了(23)

2023-11-18 13:19:18 浏览数 (3)

前言

两个月前,刚接触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);
}

0 人点赞