当前位置:   article > 正文

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例_dubbo 注解配置案例

dubbo 注解配置案例

源码下载地址:

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

Nacos集成dubbo的使用案例

1. 创建父工程。

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

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

5. 创建子工程消费者项目client

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

  1. <!--导入simpleapi依赖-->
  2. <dependency>
  3. <groupId>org.simpleapi</groupId>
  4. <artifactId>simple-api</artifactId>
  5. <version>1.0-SNAPSHOT</version>
  6. </dependency>
  7. <!-- springboot启动类的依赖 -->
  8. <dependency>
  9. <groupId>org.springframework.boot</groupId>
  10. <artifactId>spring-boot-starter</artifactId>
  11. <version>2.2.1.RELEASE</version>
  12. </dependency>
  13. <!-- springboot启动类的依赖 -->
  14. <dependency>
  15. <groupId>org.springframework.boot</groupId>
  16. <artifactId>spring-boot-starter-web</artifactId>
  17. <version>2.2.1.RELEASE</version>
  18. </dependency>
  19. <!--dubbo依赖-->
  20. <dependency>
  21. <groupId>com.alibaba.cloud</groupId>
  22. <artifactId>spring-cloud-starter-dubbo</artifactId>
  23. <version>2.2.1.RELEASE</version>
  24. </dependency>
  25. <!--nacos依赖-->
  26. <dependency>
  27. <groupId>com.alibaba.cloud</groupId>
  28. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  29. <version>2.1.1.RELEASE</version>
  30. </dependency>

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

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

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

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

 

  1. @Service
  2. public class OrderServiceImpl implements OrderService {
  3. @Override
  4. public String getOrderStatus() {
  5. return "订单已完成";
  6. }
  7. }

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

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

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

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

  1. @RestController
  2. public class OrderController {
  3. //使用dubbo注解 注入远程调用的接口
  4. @Reference
  5. OrderService orderService;
  6. @RequestMapping("getOrderInfo")
  7. public String getOrderInfo(){
  8. return orderService.getOrderStatus();
  9. }
  10. @RequestMapping("getOrderInfo1")
  11. public String getOrderInfo1(){
  12. return "success";
  13. }
  14. }

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

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

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

        输入命令:startup.cmd -m standalone

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

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

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

  1. <dependency>
  2. <groupId>org.apache.dubbo</groupId>
  3. <artifactId>dubbo-spring-boot-starter</artifactId>
  4. <version>2.7.3</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.github.sgroschupf</groupId>
  8. <artifactId>zkclient</artifactId>
  9. <version>0.1</version>
  10. </dependency>
  11. <!-- 引入zookeeper -->
  12. <dependency>
  13. <groupId>org.apache.curator</groupId>
  14. <artifactId>curator-framework</artifactId>
  15. <version>2.12.0</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.apache.curator</groupId>
  19. <artifactId>curator-recipes</artifactId>
  20. <version>2.12.0</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.apache.zookeeper</groupId>
  24. <artifactId>zookeeper</artifactId>
  25. <version>3.4.14</version>
  26. <!--排除这个slf4j-log4j12 -->
  27. <exclusions>
  28. <exclusion>
  29. <groupId>org.slf4j</groupId>
  30. <artifactId>slf4j-log4j12</artifactId>
  31. </exclusion>
  32. </exclusions>
  33. </dependency>

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

  1. #服务名称
  2. spring.application.name=provider
  3. #dubbo默认的扫描包路径
  4. dubbo.scan.base-packages=com.provider.service
  5. #配置dubbo的端口 可以是-1 代表从20880自选端口 这里是单机 无需配置
  6. dubbo.protocol.port=20880
  7. #配置dubbo的名称
  8. dubbo.protocol.name=dubbo
  9. ##设置nacos的注册地址
  10. #spring.cloud.nacos.discovery.server-addr=localhost:8848
  11. #将服务注册到zookeeper服务器上
  12. dubbo.registry.address=zookeeper://192.168.56.10:2181

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

  1. import org.apache.dubbo.config.annotation.Service;
  2. import org.simpleapi.service.OrderService;
  3. @Service
  4. public class OrderServiceImpl implements OrderService {
  5. @Override
  6. public String getOrderStatus() {
  7. return "订单已完成";
  8. }
  9. }

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

  1. import org.apache.dubbo.config.annotation.Reference;
  2. import org.simpleapi.service.OrderService;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. @RestController
  6. public class OrderController {
  7. //使用dubbo注解 注入远程调用的接口
  8. @Reference
  9. OrderService orderService;
  10. @RequestMapping("getOrderInfo")
  11. public String getOrderInfo(){
  12. return orderService.getOrderStatus();
  13. }
  14. @RequestMapping("getOrderInfo1")
  15. public String getOrderInfo1(){
  16. return "success";
  17. }
  18. }

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/790572
推荐阅读
相关标签
  

闽ICP备14008679号