JAVA语言之(十六)JavaB2B2C o2o多用户商城-使用springcloud刷新配置
小标 2019-03-04 来源 : 阅读 1079 评论 0

摘要:本文主要向大家介绍了JAVA语言之(十六)JavaB2B2C o2o多用户商城-使用springcloud刷新配置,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之(十六)JavaB2B2C o2o多用户商城-使用springcloud刷新配置,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

JAVA语言之(十六)JavaB2B2C o2o多用户商城-使用springcloud刷新配置

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


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


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


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


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


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


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


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




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



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



<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: //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>  



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


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



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



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



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



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


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


到此,整个commonservice-config配置中心动态刷新方案整理完毕


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

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程