博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
企业级java springboot b2bc商城系统开源源码二次开发-config-bus(十三)
阅读量:6291 次
发布时间:2019-06-22

本文共 8576 字,大约阅读时间需要 28 分钟。

简介

当我们的业务系统越来越庞大复杂的时候,各种配置就会层出不群。一旦配置修改了,那么我们就是必须修改后停服务,然后再上线,如果服务少,我们可以手动来操作,如果是成千上百的服务,如果是手动操作,肯定就不合适宜了,然后SpringCloudConfig就出来了,就是我们通常意义上的配置中心,把应用原本放在本地文件的配置抽取出来放在中心服务器,从而能够提供更好的管理、发布能力。

SpringCloudConfig分服务端和客户端,服务端负责将git(svn或本地文件系统)中存储的配置文件发布成REST接口,客户端可以从服务端REST接口获取配置。但客户端并不能主动感知到配置的变化,从而主动去获取新的配置,这需要每个客户端通过POST方法触发各自的/refresh

SpringCloudBus通过一个轻量级消息代理连接分布式系统的节点。这可以用于广播状态更改(如配置更改)或其他管理指令。SpringCloudBus提供了通过POST方法访问的endpoint/bus/refresh,这个接口通常由git的webhook功能调用,用以通知各个SpringCloudConfig的客户端去服务端更新配置,本节就讲怎么搭建一套自动刷新的spring cloud config

一、创建模块

模块结构如下:

二、maven聚合模块microservice-config的pom.xml文件

org.springframework.boot
spring-boot-starter-parent
1.4.5.RELEASE
4.0.0
com.jacky
miroservice-config
pom
1.0-SNAPSHOT
microservice-config-server
microservice-config-eureka
microservice-config-client
UTF-8
UTF-8
1.8
jacky
192.168.6.132:5000
org.springframework.cloud
spring-cloud-dependencies
Camden.SR7
pom
import
org.springframework.boot
spring-boot-maven-plugin
com.spotify
docker-maven-plugin
0.4.13
复制代码

三、配置中心模块(microservice-config-eureka)

3.1、pom.xml

miroservice-config
com.jacky
1.0-SNAPSHOT
4.0.0
microservice-config-eureka
jar
UTF-8
org.springframework.cloud
spring-cloud-starter-eureka-server
org.springframework.boot
spring-boot-starter-security
com.spotify
docker-maven-plugin
build-image
install
build
http://192.168.6.130:5678
true
${docker.repostory}/${docker.image.prefix}/${project.artifactId}:${project.version}
java:openjdk-8-jdk-alpine
["java", "-jar", "/${project.build.finalName}.jar"]
/
${project.build.directory}
${project.build.finalName}.jar
复制代码

3.2、application.yml

spring:  application:    name: microservice-config-serversecurity:  basic:    enabled: true  user:    name: jacky    password: adminserver:  port: 9511eureka:  client:    register-with-eureka: false    fetch-registry: false    service-url:      defaultZone: http://jacky:admin@localhost:9511/eureka复制代码

3.3、启动类EurekaApplication.java

package com.jacky.cloud; import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication@EnableEurekaServerpublic class EurekaApplication {   public static void main(String[] args) {    SpringApplication.run(EurekaApplication.class, args);  } }复制代码

3.3、启动类EurekaApplication.java

package com.jacky.cloud; import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication@EnableEurekaServerpublic class EurekaApplication {   public static void main(String[] args) {    SpringApplication.run(EurekaApplication.class, args);  } }复制代码

四、配置中心服务端(microservice-config-server)

4.1、pom.xml文件

miroservice-config
com.jacky
1.0-SNAPSHOT
4.0.0
microservice-config-server
jar
UTF-8
org.springframework.cloud
spring-cloud-config-server
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-starter-bus-amqp
org.springframework.boot
spring-boot-starter-security
org.springframework.boot
spring-boot-starter-actuator
com.spotify
docker-maven-plugin
build-image
install
build
http://192.168.6.130:5678
true
${docker.repostory}/${docker.image.prefix}/${project.artifactId}:${project.version}
java:openjdk-8-jdk-alpine
["java", "-jar", "/${project.build.finalName}.jar"]
/
${project.build.directory}
${project.build.finalName}.jar
复制代码

4.2、application.yml文件

server:  port: 9518eureka:  instance:    prefer-ip-address: true                   # 开启健康检查(需要spring-boot-starter-actuator依赖)    lease-expiration-duration-in-seconds: 90  #续约到期时间(单位 S)默认是90S    lease-renewal-interval-in-seconds: 30     # 续约更新时间间隔(默认30秒)    instance-id: ${spring.application.name}:${spring.cloud.client.ipAddress}:${spring.application.instance_id:${server.port}}  client:    serviceUrl:     defaultZone: http://jacky:admin@localhost:9511/eureka/ #把configservice注册到eureka上,以便于客户端通过eureka上注册的信息找到configservice#实现的基本的 HttpBasic 的认证security:  basic:    enabled: true     # 开启基于HTTP basic的认证  user:    name: jacky123      # 配置登录的账号    password: admin123   # 配置登录的密码#spring:  application:    name: microservice-config-service  cloud:    config:      server:        git:          uri: http://git.oschina.net/jacky-lulu/microservice-config-repo  #配置git仓库位置          clone-on-start: true #在启动的时候克隆仓库          search-paths: '{application}' #配置仓库路径下的相对搜索位置,可以配置多个          username: myuser   #填写git仓库的用户名          password: mypass   #填写git仓库的密码  rabbitmq:    host: 192.168.6.130    port: 5672    username: myuser    password: mypass复制代码

Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六

转载于:https://juejin.im/post/5c67a67d6fb9a049fb443228

你可能感兴趣的文章
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>