(十六)JAVA springcloud ssm b2b2c多用户商城系统-使用spring cloud Bus刷新配置

itautum · · 36 次点击 · 开始浏览   
电子商务社交平台源码请加企鹅求求:三五三六二四七二五九。我们使用spring cloud分布式微服务云架构做了b2b2c的电子商务系统,除了架构本身自带的系统服务外,我们将b2b2c的业务服务进行了细粒度拆分,做成了不同的业务微服务。 当我们的业务系统越来越庞大复杂的时候,各种配置也会随之增多。配置文件只要一修改,会对commonservice-config配置中心先停止服务,然后再重新启动,最后使配置生效。 如果服务少,我们可以手动方式来启动,但是对业务和系统的稳定性肯定有一定的影响。 如果是成百上千的服务都靠手动操作,我估计运维人员或技术人员会疯掉的。 针对以上问题,commonservice-config服务端和业务微服务分别做了相关的配置,服务端负责将git(svn或本地文件系统)中存储的配置文件进行配置化(我们使用的是本地配置方案,方便直接将配置文件更新到linux上), 业务微服务通过配置从服务端配置中心获取相关配置,如果配置文件变动了,通过刷新业务微服务的方式,将最新的配置信息获取。 spring cloud Bus通过一个轻量级消息代理连接分布式系统的节点。这可以用于广播状态更改(如配置更改)或其他管理指令。 接下来,我们就来实施通过spring cloud Bus方案,动态刷新服务端配置,具体步骤如下: 1. commonservice-config服务配置可以参考之前的链接: 2. 业务微服务配置(以honghu-member-servcie会员服务为例): pom文件配置: <span style="font-size: 16px;"> <dependency> <groupId>org.springframework.boot</groupId> <artifactId><span style="font-size: 16px;">spring-boot-starter-actuator</span></artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId><span style="font-size: 16px;">spring-cloud-starter-bus-amqp</span></artifactId> </dependency></span> yml文件配置: <span style="font-size: 16px;">server: port: 5012 spring: application: name: honghu-member-client profiles: active: dev,discoveryClient cloud: config: discovery: enabled: true service-id: commonservice-config-server <span style="font-size: 16px;"><strong>name: honghu-member profile: dev bus: trace: enabled: true #开启消息跟踪 </strong> <strong>rabbitmq: host: 192.168.1.254 port: 5672 username: honghu password: honghu</strong> </span> eureka: client: serviceUrl: defaultZone: http://honghu:123456@localhost:8761/eureka/ instance: prefer-ip-address: true logging: level: root: INFO org.springframework.security: INFO management: security: enabled: false security: basic: enabled: false</span> 编写一个测试类(MemberController.java),用来获取配置项 <span style="font-size: 16px;">package com.honghu.cloud.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; <strong>@RefreshScope</strong> @RestController public class MemberController { @Value("${profile}") private String profile; @GetMapping("/profile") public String getProfile() { return this.profile; } }</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配置中心动态刷新方案整理完毕 电子商务社交平台源码请加企鹅求求:三五三六二四七二五九 欢迎大家和我一起学习spring cloud构建微服务云架构,我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目。
36 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet