博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(十三)Java springcloud B2B2C o2o多用户商城 springcloud架构-config-bus
阅读量:6417 次
发布时间:2019-06-23

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

简介

当我们的业务系统越来越庞大复杂的时候,各种配置就会层出不群。一旦配置修改了,那么我们就是必须修改后停服务,然后再上线,如果服务少,我们可以手动来操作,如果是成千上百的服务,如果是手动操作,肯定就不合适宜了,然后SpringCloudConfig就出来了,就是我们通常意义上的配置中心,把应用原本放在本地文件的配置抽取出来放在中心服务器,从而能够提供更好的管理、发布能力。Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六

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/5c4172d5518825258005243c

你可能感兴趣的文章
手把手玩转win8开发系列课程(3)
查看>>
NGINX引入线程池 性能提升9倍
查看>>
《淘宝技术这十年》读书笔记 (四). 分布式时代和中间件
查看>>
linux下mongodb定时备份指定的集合
查看>>
SMP架构多线程程序的一种性能衰退现象—False Sharing
查看>>
choose MariaDB 10 or 5.x
查看>>
oVirt JBAS server start failed, ajp proxy cann't server correct. ovirt-engine URL cann't open
查看>>
CDP WebConsole上线公告
查看>>
ubuntu下安装摄像头应用程序xawtv
查看>>
GFS2,GFS,EXT2,EXT3 SEQ-write performance compare
查看>>
PostgreSQL 如何比较两个表的定义是否一致
查看>>
PHPCMS2008利用EXP
查看>>
扩展android-volley来开发Android restful client
查看>>
邻居子系统
查看>>
【转】一个程序员眼中的价值
查看>>
Python删除指定目录下的过期文件
查看>>
Linux Mint下Kindle Fire调试android程序
查看>>
自定义Background
查看>>
git笔记
查看>>
Android开源中国客户端学习 配置文件读写 以及其他一些工具类 <13>
查看>>