五分钟内反应回复,平均十分钟解决任何IT技术问题,按难度跟工作量收费!

(五)java B2B2C Springcloud多租户电子商城系统---使用spring cloud Bus刷新配置

IT初夏 |浏览85次 |售价:0元 |联系博客主
收藏|2019/08/13 15:22

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

愿意了解源码的朋友直接求求交流分享技术:三五三六二四七二五九

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

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

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

针对以上问题,commonservice-config服务端和业务微服务分别做了相关的配置,服务端负责将git(svn或本地文件系统)中存储的配置文件进行配置化,业务微服务通过配置从服务端配置中心获取相关配置,如果配置文件变动了,通过刷新业务微服务的方式,将最新的配置信息获取。

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

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

1 新建项目microservice-config-client-refresh-cloud-bus

2 为项目添加spring-cloud-starter-bus-amqp依赖

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
  </dependencies>

修改bootstrap.yml内容

spring:
  application:
    name: microservice-foo    # 对应config server所获取的配置文件的{application}
  cloud:
    config:
      uri:http://localhost:8080/
      profile: dev            # profile对应config server所获取的配置文件中的{profile}
      label: master           # 指定Git仓库的分支,对应config server所获取的配置文件的{label}
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

测试
1 启动microservice-config-server。
2 启动microservice-config-client-refresh-cloud-bus。


电子商务社交平台源码请加企鹅求求:三五三六二四七二五九

咨询/回复该博客即可获得 2 经验值,咨询/回复被采纳即可获得 2 经验值!
咨询/回复

验证码

  换一个
全部回答(0)
+1
 加载中...