• springboot集成dubbo+zookeeper简单搭建(细到你没有感觉)


    dubbo搭建过程中,请注意各依赖版本号,如果不知道版本对应,请跟下文保持一致,否则可能出现冲突,在你看到此文章之前,请确保你的zookeeper已经搭建完毕

    1.创建项目

    1.创建根(root)项目

    选择maven,你也可以选择spirng initializr创建 

    我的父工程的名字是 dubbo_ex 根据自己的需要更改即可

    创建完成之后,会得到一个只有src目录的项目,删除src(父工程不需要写代码)

    pom中需要注意的注释,已经在下面代码中进行注释

    给小白提一嘴:统一的包管理,1.2.3,这种标签是自定义的,不是什么标准,可以等于EL表达式的取值方式(可能是我太菜了,刚学maven,认为这种有固定的写法)

    pom.xml

    1. <project xmlns="http://maven.apache.org/POM/4.0.0"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <parent>
    6. <groupId>org.springframework.bootgroupId>
    7. <artifactId>spring-boot-starter-parentartifactId>
    8. <version>2.3.12.RELEASEversion>
    9. <relativePath/>
    10. parent>
    11. <groupId>com.fmhgroupId>
    12. <artifactId>dubbo_exartifactId>
    13. <packaging>pompackaging>
    14. <version>1.0-SNAPSHOTversion>
    15. <modules>
    16. <module>dubbo-apimodule>
    17. <module>proceduremodule>
    18. <module>consumermodule>
    19. modules>
    20. <properties>
    21. <maven.compiler.source>8maven.compiler.source>
    22. <maven.compiler.target>8maven.compiler.target>
    23. <java.version>1.8java.version>
    24. <zk.version>3.6.2zk.version>
    25. <dubbo.version>2.7.7dubbo.version>
    26. <curator.framework.version>5.1.0curator.framework.version>
    27. <curator.recipes.version>5.1.0curator.recipes.version>
    28. properties>
    29. <dependencyManagement>
    30. <dependencies>
    31. <dependency>
    32. <groupId>org.apache.dubbogroupId>
    33. <artifactId>dubbo-spring-boot-starterartifactId>
    34. <version>${dubbo.version}version>
    35. dependency>
    36. <dependency>
    37. <groupId>org.apache.zookeepergroupId>
    38. <artifactId>zookeeperartifactId>
    39. <version>${zk.version}version>
    40. dependency>
    41. <dependency>
    42. <groupId>org.apache.curatorgroupId>
    43. <artifactId>curator-frameworkartifactId>
    44. <version>${curator.framework.version}version>
    45. dependency>
    46. <dependency>
    47. <groupId>org.apache.curatorgroupId>
    48. <artifactId>curator-recipesartifactId>
    49. <version>${curator.recipes.version}version>
    50. dependency>
    51. dependencies>
    52. dependencyManagement>
    53. project>

    2.创建模块

    此处你也可以选择spring init,我们选择maven工程

    注意此处截图圈红的位置

     pom.xml (该pom什么也没改变,该模块无需添加dubbo等依赖)

    1. <project xmlns="http://maven.apache.org/POM/4.0.0"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <parent>
    5. <artifactId>dubbo_exartifactId>
    6. <groupId>com.fmhgroupId>
    7. <version>1.0-SNAPSHOTversion>
    8. parent>
    9. <modelVersion>4.0.0modelVersion>
    10. <artifactId>dubbo-apiartifactId>
    11. <properties>
    12. <maven.compiler.source>8maven.compiler.source>
    13. <maven.compiler.target>8maven.compiler.target>
    14. properties>
    15. project>

     我们在刚刚创建的模块中,随意写一个接口,如下图:

    3.创建消费者 

     创建步骤跟第二步一样的步骤,不再演示,名字随意

    pom.xml

    你的pom文件需要修改一下引入的第二步创建的模块,下面代码中已经给出了注释,我们的名字不同

    1. <project xmlns="http://maven.apache.org/POM/4.0.0"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <parent>
    5. <artifactId>dubbo_exartifactId>
    6. <groupId>com.fmhgroupId>
    7. <version>1.0-SNAPSHOTversion>
    8. parent>
    9. <modelVersion>4.0.0modelVersion>
    10. <artifactId>procedureartifactId>
    11. <properties>
    12. <maven.compiler.source>8maven.compiler.source>
    13. <maven.compiler.target>8maven.compiler.target>
    14. properties>
    15. <dependencies>
    16. <dependency>
    17. <groupId>org.springframework.bootgroupId>
    18. <artifactId>spring-boot-starter-webartifactId>
    19. dependency>
    20. <dependency>
    21. <groupId>org.springframework.bootgroupId>
    22. <artifactId>spring-boot-starterartifactId>
    23. dependency>
    24. <dependency>
    25. <groupId>org.apache.zookeepergroupId>
    26. <artifactId>zookeeperartifactId>
    27. dependency>
    28. <dependency>
    29. <groupId>org.apache.curatorgroupId>
    30. <artifactId>curator-frameworkartifactId>
    31. dependency>
    32. <dependency>
    33. <groupId>org.apache.curatorgroupId>
    34. <artifactId>curator-recipesartifactId>
    35. dependency>
    36. <dependency>
    37. <groupId>com.fmhgroupId>
    38. <artifactId>dubbo-apiartifactId>
    39. <version>1.0-SNAPSHOTversion>
    40. dependency>
    41. <dependency>
    42. <groupId>org.apache.dubbogroupId>
    43. <artifactId>dubbo-spring-boot-starterartifactId>
    44. dependency>
    45. dependencies>
    46. project>

     application.properties

    1. server.port=8082
    2. ## 注册中心 zookeeper的地址
    3. dubbo.registry.address=zookeeper://127.0.0.1:2181
    4. dubbo.application.name=provider-ticker
    5. # dubbo扫描的包
    6. dubbo.scan.base-packages=com.fmh.service
    7. dubbo.registry.timeout=20000
    8. dubbo.protocol.name=dubbo
    9. dubbo.protocol.port=20880

     实现接口,注意导入的包(@Component可以替换为@Service,不过要注意引入的包是否是spring的)

    1. @Component
    2. @DubboService(version = "1.0")
    3. public class UserServiceImpl implements UserService {
    4. @Override
    5. public String hello(String str) {
    6. return str;
    7. }
    8. }

    springboot启动类

     这个代码就不给出了

    至此,服务提供者创建完毕

    4.消费者模块创建

    跟 2小节一样的步骤

    pom.xml

    注意引入自己的模块

    1. <project xmlns="http://maven.apache.org/POM/4.0.0"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <parent>
    5. <artifactId>dubbo_exartifactId>
    6. <groupId>com.fmhgroupId>
    7. <version>1.0-SNAPSHOTversion>
    8. parent>
    9. <modelVersion>4.0.0modelVersion>
    10. <artifactId>consumerartifactId>
    11. <properties>
    12. <maven.compiler.source>8maven.compiler.source>
    13. <maven.compiler.target>8maven.compiler.target>
    14. properties>
    15. <dependencies>
    16. <dependency>
    17. <groupId>com.fmhgroupId>
    18. <artifactId>dubbo-apiartifactId>
    19. <version>1.0-SNAPSHOTversion>
    20. dependency>
    21. <dependency>
    22. <groupId>org.apache.dubbogroupId>
    23. <artifactId>dubbo-spring-boot-starterartifactId>
    24. dependency>
    25. <dependency>
    26. <groupId>org.springframework.bootgroupId>
    27. <artifactId>spring-boot-starterartifactId>
    28. dependency>
    29. <dependency>
    30. <groupId>org.apache.curatorgroupId>
    31. <artifactId>curator-frameworkartifactId>
    32. dependency>
    33. <dependency>
    34. <groupId>org.apache.curatorgroupId>
    35. <artifactId>curator-recipesartifactId>
    36. dependency>
    37. <dependency>
    38. <groupId>org.apache.zookeepergroupId>
    39. <artifactId>zookeeperartifactId>
    40. dependency>
    41. <dependency>
    42. <groupId>org.springframework.bootgroupId>
    43. <artifactId>spring-boot-starter-webartifactId>
    44. dependency>
    45. dependencies>
    46. project>

    application.properties 配置文件

    1. server.port=8083
    2. dubbo.registry.address=zookeeper://127.0.0.1:2181
    3. dubbo.application.name=provider-consumer
    4. dubbo.scan.base-packages=com.fmh.controller
    5. dubbo.registry.timeout=20000
    6. dubbo.protocol.name=dubbo-consumer
    7. dubbo.protocol.port=20881

    创建controller

    1. @RestController
    2. public class UserController {
    3. @DubboReference(version = "1.0")
    4. private UserService userService;
    5. @GetMapping("/user")
    6. public String user() {
    7. return userService.hello("只因你太美");
    8. }
    9. }

    创建springboot启动类(这个代码就不需要了吧,上面有给出哦)

    然后启动项目

    这个提示不用管,是因为zk或者dubbo没有排除log4j的组件,不影响 

    用postman调用接口,即可看到结果

    另外 dubbo-admin可以可视化看到接口注册情况,看反馈情况决定是否更新,感谢您的阅读!

    如果有问题,欢迎留言 

  • 相关阅读:
    计算机毕业设计ssm+vue基本微信小程序的高速公路服务区充电桩在线预订系统
    Qwt开发笔记(二):Qwt基础框架介绍、折线图介绍、折线图Demo以及代码详解
    云原生多云容器编排平台karmada上手指南
    安科瑞高等学校校园建筑节能监管系统建设
    高德地图实时定位接口的调用
    代理IP与网络安全:保障跨境电商和游戏的顺畅运行
    自定义功能区
    SpringMVC概述及入门
    105、python-第四阶段-2-装饰器
    CentOS7 yum安装报错:“Could not resolve host: mirrorlist.centos.org; Unknown error“
  • 原文地址:https://blog.csdn.net/weixin_44231805/article/details/126144762