Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例

导读:本篇文章讲解 Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

源码下载地址:

https://download.csdn.net/download/weixin_43195884/87409766

Nacos集成dubbo的使用案例

1. 创建父工程。

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例

2. 创建子工程api,存放各个模块之间依赖的service代码

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例

3. 创建子工程服务端提供接口的项目

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例5. 创建子工程消费者项目client

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例

5. 在client项目和provider项目中引入依赖

<!--导入simpleapi依赖-->
<dependency>
    <groupId>org.simpleapi</groupId>
    <artifactId>simple-api</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
<!-- springboot启动类的依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <version>2.2.1.RELEASE</version>
</dependency>
<!-- springboot启动类的依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.2.1.RELEASE</version>
</dependency>
<!--dubbo依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-dubbo</artifactId>
    <version>2.2.1.RELEASE</version>
</dependency>
<!--nacos依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>

 6. 在provider项目中编写代码,首先,在主类中引入注解:@EnableDiscoveryClient

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例

7. 在application.properties文件中配置dubbo的地址、nacos的注册地址

#服务名称
spring.application.name=provider
#dubbo默认的扫描包路径
dubbo.scan.base-packages=com.provider.service
#配置dubbo的端口 可以是-1 代表从20880自选端口 这里是单机 无需配置
dubbo.protocol.port=20880
#配置dubbo的名称
dubbo.protocol.name=dubbo
#设置nacos的注册地址
spring.cloud.nacos.discovery.server-addr=localhost:8848

 8. 在provider项目中编写serviceipl实现类,实现代码,注意,此处需要使用dubbo的service注解

 

@Service
public class OrderServiceImpl implements OrderService {
    @Override
    public String getOrderStatus() {
        return "订单已完成";
    }
}

 9. 打开client消费者项目,在主类上增加注解@enablediscoveryclient

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例

 10. 在cilent项目中配置服务名称、nacos的注册地址

#服务名称
spring.application.name=client
#设置nacos的注册地址
spring.cloud.nacos.discovery.server-addr=localhost:8848

11. 编写controller代码,注意此处需要使用dubbo的reference注解

@RestController
public class OrderController {

    //使用dubbo注解 注入远程调用的接口
    @Reference
    OrderService orderService;

    @RequestMapping("getOrderInfo")
    public String getOrderInfo(){
        return orderService.getOrderStatus();
    }

    @RequestMapping("getOrderInfo1")
    public String getOrderInfo1(){
        return "success";
    }
}

12. 启动本地的nacos服务、启动provider、client项目,nacos使用可参考:

微服务入门篇(二),万字长文带你实操作SpringCloudAlibaba微服务组件_只为code醉的博客-CSDN博客

        Nacos启动:打开黑窗口,进入目录:D:\nacos\nacos\bin

        输入命令:startup.cmd -m standalone

13. 浏览器访问controller接口,返回以下信息:

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例

 使用dubbo+zookeeper+springboot实现服务注册与发现

1. 此处还是使用上面的项目,引入dubbo和zookeeper的依赖:

<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>

<!-- 引入zookeeper -->
<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.14</version>
    <!--排除这个slf4j-log4j12 -->
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2. 在application.properties文件中配置以下信息:

#服务名称
spring.application.name=provider
#dubbo默认的扫描包路径
dubbo.scan.base-packages=com.provider.service
#配置dubbo的端口 可以是-1 代表从20880自选端口 这里是单机 无需配置
dubbo.protocol.port=20880
#配置dubbo的名称
dubbo.protocol.name=dubbo
##设置nacos的注册地址
#spring.cloud.nacos.discovery.server-addr=localhost:8848

#将服务注册到zookeeper服务器上
dubbo.registry.address=zookeeper://192.168.56.10:2181

3. 在服务提供项目中,编写service类,注意,此处的service注解是dubbo的

import org.apache.dubbo.config.annotation.Service;
import org.simpleapi.service.OrderService;

@Service
public class OrderServiceImpl implements OrderService {
    @Override
    public String getOrderStatus() {
        return "订单已完成";
    }
}

4. 在消费方中同样导入上面的依赖,同时,调用service接口,注意,此处使用的reference注解是dubbo的

import org.apache.dubbo.config.annotation.Reference;
import org.simpleapi.service.OrderService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class OrderController {

    //使用dubbo注解 注入远程调用的接口
    @Reference
    OrderService orderService;

    @RequestMapping("getOrderInfo")
    public String getOrderInfo(){
        return orderService.getOrderStatus();
    }

    @RequestMapping("getOrderInfo1")
    public String getOrderInfo1(){
        return "success";
    }
}

5. 同样的在application.properties文件中也需要配置zookeeper的注册消息

#服务名称
spring.application.name=client
##设置nacos的注册地址
#spring.cloud.nacos.discovery.server-addr=localhost:8848
#将服务注册到zookeeper服务器上
dubbo.registry.address=zookeeper://192.168.56.10:2181

6. 浏览器访问controller接口,返回以下信息:

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116517.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!