zoukankan      html  css  js  c++  java
  • Spring Cloud Config整合RabbitMQ 由于版本问题导致的坑

    最近闲来无事就整合了一下Spring Cloud Config跟RabbitMQ,遇到了不少坑,记录一波。

    先从安装MQ开始吧:

    第一步:先安装Erlang,下载地址:https://www.erlang.org/  安装步骤就省略了。

    第二步:安装RabbitMQ,下载地址:https://www.rabbitmq.com/download.html 安装步骤同样省略,不会自行百度吧。

    第三步:启动RabbitMQ:

          1、进入到sbin目录下执行:rabbitmq-plugins enable rabbitmq_management

          2、开启服务执行:rabbitmq-server

          打开浏览器访问:http://localhost:15672

          默认UserName:guest    Password:guest

          注意端口:15672

    登录成功后记得添加一个用户,用作项目登录,添加用户时记得添加权限哦!!!!

    到此为止算是完成一小步了。接下来就是项目配置了,分为server端和client端。

    server端配置:

      1.pom.xml:

     1 <dependency>
     2             <groupId>org.springframework.cloud</groupId>
     3             <artifactId>spring-cloud-starter-bus-amqp</artifactId>
     4             <version>2.2.1.RELEASE</version>
     5         </dependency>
     6         <dependency>
     7             <groupId>org.springframework.cloud</groupId>
     8             <artifactId>spring-cloud-bus</artifactId>
     9             <version>2.2.1.RELEASE</version>
    10         </dependency>
    11 
    12         <dependency>
    13             <groupId>org.springframework.cloud</groupId>
    14             <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
    15             <version>3.0.3.RELEASE</version>
    16         </dependency>
    17 
    18         <dependency>
    19             <groupId>org.springframework.boot</groupId>
    20             <artifactId>spring-boot-starter-actuator</artifactId>
    21         </dependency>

    注意:Spring boot 2.0的改动较大,/bus/refresh全部整合到actuador里面了,所以 spring-boot-starter-actuator 不能少

    2.application.properties:

     1 spring.application.name=spring-cloud-config-server
     2 
     3 eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
     4 
     5 server.port=8040
     6 
     7 # 配置git仓库的地址
     8 spring.cloud.config.server.git.uri=https://github.com/isTeemo/spring-cloud-config.git
     9 # git仓库地址下的相对地址,可以配置多个,用,分割。
    10 spring.cloud.config.server.git.search-paths=neo-config
    11 spring.cloud.config.label=master
    12 # git仓库的账号
    13 spring.cloud.config.server.git.username=14 # git仓库的密码
    15 spring.cloud.config.server.git.password=
    16 
    17 ## 刷新时,关闭安全验证
    19 management.endpoints.web.exposure.include=bus-refresh
    20 spring.cloud.bus.refresh.enabled=true
    21 ## 开启消息跟踪
    22 #spring.cloud.bus.trace.enabled=true
    23 
    24 spring.rabbitmq.host=localhost
    25 spring.rabbitmq.port=5672
    26 spring.rabbitmq.username=admin
    27 spring.rabbitmq.password=admin

    注意:

      a.RabbitMQ的端口为:15672 ,但是这里配置必须写成:5672。

      b.刷新关闭安全验证配置,在Spring boot 1.x用:management.security.enabled=false,但是2.0后得用:management.endpoints.web.exposure.include=bus-refresh

      c.请求刷新地址:1.x版本为:http://ip:端口/bus/refresh(如:http://localhost:8040/bus/refresh),2.0以后为:http://ip:端口/actuator/bus-refresh(如:http://localhost:8040/actuator/bus-refresh),特别注意:两个都是POST请求

    接下来是client端,:

     1.pom.xml(跟server端一样):

     1 <dependency>
     2             <groupId>org.springframework.cloud</groupId>
     3             <artifactId>spring-cloud-starter-bus-amqp</artifactId>
     4             <version>2.2.1.RELEASE</version>
     5         </dependency>
     6         <dependency>
     7             <groupId>org.springframework.cloud</groupId>
     8             <artifactId>spring-cloud-bus</artifactId>
     9             <version>2.2.1.RELEASE</version>
    10         </dependency>
    11 
    12         <dependency>
    13             <groupId>org.springframework.cloud</groupId>
    14             <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
    15             <version>3.0.3.RELEASE</version>
    16         </dependency>
    17 
    18         <dependency>
    19             <groupId>org.springframework.boot</groupId>
    20             <artifactId>spring-boot-starter-actuator</artifactId>
    21         </dependency>

    注意:Spring boot 2.0的改动较大,/bus/refresh全部整合到actuador里面了,所以 spring-boot-starter-actuator 不能少

    2.bootstrap.properties:

     1 spring.application.name=spring-cloud-config-client
     2 eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
     3 server.port=8041
     4 
     5 
     6 spring.cloud.config.name=neo-config
     7 spring.cloud.config.profile=dev
     8 spring.cloud.config.label=master
     9 
    10 spring.cloud.config.discovery.enabled=true
    11 spring.cloud.config.discovery.serviceId=spring-cloud-config-server
    12 
    13 ## 刷新时,关闭安全验证
    14 management.endpoints.web.exposure.include=bus-refresh
    15 ## 开启消息跟踪
    16 spring.cloud.bus.trace.enabled=true
    17 
    18 spring.rabbitmq.host=localhost
    19 spring.rabbitmq.port=5672
    20 spring.rabbitmq.username=admin
    21 spring.rabbitmq.password=admin

    注意点跟server端一样。

    特别注意:client端在获取配置的方法上需要加上 @RefreshScope 注解。

    其实这是坑都是自己不读官方文档导致的,作为一个程序猿,应该养成多逛逛官方网站的习惯,毕竟现在的东西迭代速度非常快,一不小心就落后了。

    另外,我在看其他大神文章时看到一个问题,由于本人刚刚接触这个东西,所以没有发现,也不晓得是不是真的,但是还是记录一下吧,希望对遇到的人有用。

  • 相关阅读:
    Callable的Future模式
    并发队列
    并发工具类
    线程池
    并发编程专题
    侧边栏:内有友链,分类等等
    脑残错误记录
    博主的OI流水账
    NOI2019游记
    NOI数论姿势瞎总结(Pi也没有)
  • 原文地址:https://www.cnblogs.com/guagua-19/p/12627886.html
Copyright © 2011-2022 走看看