ITPub博客

首页 > 应用开发 > Java > (十六) 整合spring cloud云架构 -使用spring cloud Bus刷新配置

(十六) 整合spring cloud云架构 -使用spring cloud Bus刷新配置

原创 Java 作者:fumi106 时间:2020-11-13 17:23:54 0 删除 编辑

我们使用spring cloud分布式微服务云架构做了b2b2c的电子商务系统,除了架构本身自带的系统服务外,我们将b2b2c的业务服务进行了细粒度拆分,做成了不同的业务微服务。

 

当我们的业务系统越来越庞大复杂的时候,各种配置也会随之增多。配置文件只要一修改,会对commonservice-config配置中心先停止服务,然后再重新启动,最后使配置生效。

 

如果服务少,我们可以手动方式来启动,但是对业务和系统的稳定性肯定有一定的影响。

如果是成百上千的服务都靠手动操作,我估计运维人员或技术人员会疯掉的。

 

针对以上问题,commonservice-config服务端和业务微服务分别做了相关的配置,服务端负责将git(svn或本地文件系统)中存储的配置文件进行配置化(我们使用的是本地配置方案,方便直接将配置文件更新到linux上),

 

业务微服务通过配置从服务端配置中心获取相关配置,如果配置文件变动了,通过刷新业务微服务的方式,将最新的配置信息获取。

 

spring cloud Bus通过一个轻量级消息代理连接分布式系统的节点。这可以用于广播状态更改(如配置更改)或其他管理指令。

 

接下来,我们就来实施通过spring cloud Bus方案,动态刷新服务端配置,具体步骤如下:

1. commonservice-config服务配置可以参考之前的链接:

http://2147775633.iteye.com/admin/blogs/2396692

 

2. 业务微服务配置(以honghu-member-servcie会员服务为例):

   pom文件配置:

Xml代码   收藏代码
  1. < span   style = "font-size: 16px;" >          < dependency >   
  2.              < groupId > org.springframework.boot </ groupId >   
  3.              < artifactId > < span   style = "font-size: 16px;" > spring-boot-starter-actuator </ span > </ artifactId >   
  4.          </ dependency >   
  5.           
  6.      < dependency >   
  7.           < groupId > org.springframework.cloud </ groupId >   
  8.               < artifactId > < span   style = "font-size: 16px;" > spring-cloud-starter-bus-amqp </ span > </ artifactId >   
  9.      </ dependency > </ span >   

   

   yml文件配置:

Java代码   收藏代码
  1. <span style= "font-size: 16px;" >server:  
  2.   port:  5012   
  3. spring:   
  4.   application:  
  5.     name: honghu-member-client  
  6.   profiles:  
  7.     active: dev,discoveryClient  
  8.   cloud:  
  9.     config:  
  10.       discovery:   
  11.         enabled:  true   
  12.         service-id: commonservice-config-server  
  13.       <span style= "font-size: 16px;" ><strong>name: honghu-member  
  14.       profile: dev  
  15.     bus:  
  16.       trace:  
  17.         enabled:  true   #开启消息跟踪  </strong>          
  18.   <strong>rabbitmq:  
  19.     host:  192.168 . 1.254   
  20.     port:  5672   
  21.     username: honghu  
  22.     password: honghu</strong>  </span>   
  23. eureka:  
  24.   client:  
  25.     serviceUrl:  
  26.       defaultZone: http: //honghu:123456@localhost:8761/eureka/   
  27.   instance:  
  28.     prefer-ip-address:  true   
  29. logging:  
  30.   level:  
  31.     root: INFO  
  32.     org.springframework.security: INFO  
  33. management:  
  34.   security:  
  35.     enabled:  false   
  36. security:  
  37.   basic:  
  38.     enabled:  false </span>  

 

    编写一个测试类(MemberController.java),用来获取配置项

Java代码   收藏代码
  1. <span style= "font-size: 16px;" > package  com.honghu.cloud.controller;  
  2.   
  3. import  org.springframework.beans.factory.annotation.Value;  
  4. import  org.springframework.cloud.context.config.annotation.RefreshScope;  
  5. import  org.springframework.web.bind.annotation.GetMapping;  
  6. import  org.springframework.web.bind.annotation.RestController;  
  7.   
  8. <strong> @RefreshScope </strong>  
  9. @RestController   
  10. public   class  MemberController {  
  11.   
  12.      @Value ( "${profile}" )  
  13.      private  String profile;  
  14.   
  15.      @GetMapping ( "/profile" )  
  16.      public  String getProfile() {  
  17.          return   this .profile;  
  18.     }  
  19. }</span>  

 

3. 查看注册中心,commonservice-config、honghu-member-service服务是否已经注册成功



 

4. 访问一下profile,获取profile对应的配置信息(原配置):

访问http://localhost:7071/profile  ==》 访问结果:123456

 

5. 修改config配置中心的配置文件,将profile=123456修改为honghu123456

再次访问http://localhost:7071/profile  ==》 访问结果:123456

 

6. 使用spring cloud bus 刷新方案(使用post man测试工具进行测试)

http://localhost:7071/bus/refresh

再次访问http://localhost:7071/profile  ==》 访问结果:honghu123456

 

到此,整个commonservice-config配置中心动态刷新方案整理完毕(需要源码可以加qq:2147775633)!!

 

欢迎大家和我一起学习spring cloud构建微服务云架构,我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目。

(企业架构源码可以加求球:三五三六二四七二五九)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69984376/viewspace-2734097/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-09-22

  • 博文量
    51
  • 访问量
    25934