Springboot集成Dubbo(快速版)

本文介绍了如何在Springboot项目中集成Dubbo,包括provider-server和consumer-server的配置。步骤涉及开启Zookeeper服务,提供者提供服务并注册,消费者消费服务。详细讲解了provider-server的@Service注解和consumer-server的@Reference注解的使用,以及两种调用服务的方式。最后,通过测试验证了消费者成功从注册中心获取并消费服务。
摘要由CSDN通过智能技术生成

目录

项目结构与步骤梳理

provider-server

consumer-server


 

项目结构与步骤梳理

 

完整项目结构如下

 

 

步骤梳理

1.开启zk服务

2.提供者提供服务

  • 导入依赖
  • 配置注册中心地址,服务发现名,扫描的包
  • 在想要被注册的服务上增加@Service注解(dubbo包的service注解)

3.消费者对服务进行消费

  • 导入依赖
  • 配置注册中心的地址,配置自己的服务名
  • 从远程注入服务@Reference(dubbo包的Reference注解)

 

 

provider-server

 

导入依赖 

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
        <!--解决引入zk后日志冲突的问题-->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
            <!--排除这个slf4j-log4j12-->
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

 

新建service接口和实现类,@Service注解来自于Dubbo包

 

提供者的配置文件

 

提供者的核心逻辑就是一个普通的方法+把它注册到zk上去

 

 

consumer-server

 

导入依赖

所有依赖和提供者的一样,需注意zk的依赖包得能和你的zk服务版本匹配或兼容~

 

消费者调用生产者的业务

配置我们后面说,单说调用的方式有两种,一种如图,你把生产者搞成一个包,当做依赖写到消费者的pom文件中

这种方式在项目中经常用到。


        <!--引入service的依赖-->
        <dependency>
            <groupId>xx.xxxxx.dubbo</groupId>
            <artifactId>xxx-dubbo-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

另外一种方式就是你新建一个service接口,这个接口和提供者的接口一模一样。

然后消费者自己的实现类进行如下操作。首先,消费者的实现类一定要放在springboot的容器中,然后你通过@Reference注解远程调用提供者的TicketServiceImpl,注意采取这种方法,新建的service接口就是标记,如果没有新建的service接口,@Reference找不到提供者的TicketServiceImpl

接下来我们在配置文件中,把消费者的信息注册到zk上去

测试,在消费者的测试类中先拿到UserService,然后调用其中的方法

 

测试之前,你当然要先启动提供者,确保提供者已经注册到zk上了

这回可以启动消费者的测试类了,可以看到成功取出zk中的消息了~

 

 

消费者的核心逻辑是,先把自己放到注册中心上,然后通过注解取出提供者放在注册中心上的消息,然后在自己的业务中进行消费~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值