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

我们使用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:[email protected]: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配置中心动态刷新方案整理完毕 需要源码可以求求:2147775633

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

原文地址:https://www.cnblogs.com/sccoming/p/10141552.html

时间: 2024-10-10 08:54:30

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

JAVA springcloud ssm b2b2c多用户商城系统源码-docker-feign-hystrix(六)

简介 上一节我们讨论feign的配置,这节我们讨论一下,feign+hystrix调用生产者时,进行容错处理 一.创建模块(microservice-consumer-movie-feign-with-hystrix) 二.pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmln

(十七)JAVA springcloud ssm b2b2c多用户商城系统-消息驱动 Spring Cloud Stream

在使用spring cloud云架构的时候,我们不得不使用Spring cloud Stream,因为消息中间件的使用在项目中无处不在,我们公司后面做了娱乐方面的APP,在使用spring cloud做架构的时候,其中消息的异步通知,业务的异步处理都需要使用消息中间件机制.spring cloud的官方给出的集成建议(使用rabbit mq和kafka),我看了一下源码和配置,只要把rabbit mq集成,kafka只是换了一个pom配置jar包而已,闲话少说,我们就直接进入配置实施: 1. 简

(三)JAVA springcloud ssm b2b2c多用户商城系统:服务提供与调用

上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册中心,搭建一个简单的服务端注册服务,客户端去调用服务使用的案例. 案例中有三个角色:服务注册中心.服务提供者.服务消费者,其中服务注册中心就是我们上一篇的eureka单机版启动既可,流程是首先启动注册中心,服务提供者生产服务并注册到服务中心中,消费者从服务中心中获取服务并执行. 服务提供 我们假设服务提供者有一个hello方法,可以根据传入的参数,提供输出"hello xxx,this is firs

JAVA springboot ssm b2b2c多用户商城系统源码(六) 分布式配置中心(Spring Cloud Config)

一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud config 组件中,分两个角色,一是config server,二是config client. 二.构建Config Server 创建一个spring-boot项目,取名为config-s

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

我们使用spring cloud分布式微服务云架构做了b2b2c的电子商务系统,除了架构本身自带的系统服务外,我们将b2b2c的业务服务进行了细粒度拆分,做成了不同的业务微服务. 当我们的业务系统越来越庞大复杂的时候,各种配置也会随之增多.配置文件只要一修改,会对commonservice-config配置中心先停止服务,然后再重新启动,最后使配置生效. 如果服务少,我们可以手动方式来启动,但是对业务和系统的稳定性肯定有一定的影响. 如果是成百上千的服务都靠手动操作,我估计运维人员或技术人员会疯

(十四) Java B2B2C多用户商城 springboot架构- Spring Cloud构建分布式电子商务平台

通过Spring Cloud构建PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台,之前我们讲了很多关于Spring Cloud的概念文章,从本节开始,我们会以分布式微服务电子商务平台为案例,逐步给大家讲解如何构建完整的电子商务云平台. 技术解决方案 开发语言: java 数据库:mysql JDK支持版本: JDK1.8 核心技术:分布式.云服务.微服务.服务编排 核心架构: 使用Spring Cloud分布式微服务云架构进行服务化开发,

SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)

一.安装rabbitmq 二.pom父文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.ap

SpringBoot b2b2c 多用户商城系统 (十六)用restTemplate消费服务

构架工程 创建一个springboot工程,去消费RESTFUL的服务.这个服务是 http:///gturnquist-quoters.cfapps.io/api/random ,它会随机返回Json字符串. 在Spring项目中,它提供了一个非常简便的类,叫RestTemplate,它可以很简便的消费服务. 消费服务 通过RestTemplate消费服务,需要先context中注册一个RestTemplate bean.代码如下: @Bean public RestTemplate rest

SpringBoot b2b2c 多用户商城系统 (十五)Springboot整合RabbitMQ

这篇文章带你了解怎么整合RabbitMQ服务器,并且通过它怎么去发送和接收消息.我将构建一个springboot工程,通过RabbitTemplate去通过MessageListenerAdapter去订阅一个POJO类型的消息. 准备工作 15min IDEA maven 3.0 在开始构建项目之前,机器需要安装rabbitmq,你可以去官网下载,http://www.rabbitmq.com/download.html ,如果你是用的Mac,你可以这样下载: brew install rab