centos8安装RabbitMQ链接:
centos8安装RabbitMQ_weixin_44919041的博客-CSDN博客
2. parent pom文件配置pom.xml配置文件如下:
2.springCloud整合Eureka集群注册中心 1.版本说明4.0.0 com.zhangy.springCloud zhangy-spring-cloud1.0-SNAPSHOT pom 11 11 1.18.22 8.0.28 42.3.3 2.2.0 2021.0.1 2021.1com.alibaba.cloud spring-cloud-alibaba-dependencies${alibaba.version} pom import org.springframework.boot spring-boot-starter-parent2.6.4 pom import org.springframework.cloud spring-cloud-dependencies${spring-cloud.version} pom import org.mybatis.spring.boot mybatis-spring-boot-starter2.2.0 mysql mysql-connector-java${mysql.version} org.postgresql postgresql${postgresql.version} runtime org.springframework.boot spring-boot-maven-plugintrue true
SpringBoot版本为2.6.4 SpringCloud版本2021.0.1
2.本地host文件映射如果使用一台机器搭建集群的话,需要做映射
3. pom文件配置127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com
4.yml文件配置zhangy-spring-cloud com.zhangy.springCloud 1.0-SNAPSHOT 4.0.0 spring-cloud-eureka02org.springframework.cloud spring-cloud-starter-netflix-eureka-server
spring:
application:
name: cloud-eureka-server
server:
port: 7002
tomcat:
uri-encoding: UTF-8
eureka:
instance:
hostname: eureka7002.com
client:
service-url:
#注册服务地址
defaultZone: http://eureka7001.com:7001/eureka
#fasle表示不向注册中心注册自己
register-with-eureka: false
#false表示自己就是注册中心
fetch-registry: false
5.启动类
@EnableEurekaServer//eureka注册中心服务端
@SpringBootApplication
class EurekaServer02Application {
public static void main(String[] args) {
SpringApplication.run(EurekaServer02Application.class, args);
}
}
初始化一个项目,按照上述3.4.5步骤在配置一个,注意yml中的hostname和port端口号需要修改,defaultZone为相互注册的地址
端口为7001的注册中心
端口为7002的注册中心
6.启动两个注册中心
访问 http://eureka7002.com:7002
访问http://eureka7001.com:7001
3.springCloud整合config- server配置中心 1.版本说明SpringBoot版本为2.6.4 SpringCloud版本2021.0.1
2.初始化项目配置pom依赖3.application.yml配置zhangy-spring-cloud com.zhangy.springCloud 1.0-SNAPSHOT 4.0.0 springCloud配置服务端 spring-cloud-config-serverorg.springframework.cloud spring-cloud-starter-bus-amqporg.springframework.cloud spring-cloud-config-serverorg.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-actuatororg.springframework.cloud spring-cloud-starter-netflix-eureka-clientcom.zhangy.springCloud spring-cloud-common1.0-SNAPSHOT
server:
port: 7003
spring:
application:
name: cloud-config-server
cloud:
config:
server:
git:
uri: https://gitee.com/zhangy_123/spring-cloud-config.git
#搜索目录
search-paths: /springCloud-config
username: gitee账号 #用户名
password: gitee密码 # 密码
#默认读取主分枝 master dev
default-label: dev #请求URL中没有指定的时候 默认读取配置的 没有配置读取主分枝master
rabbitmq:
host: mq的所在服务器的ip
port: 5672
username: admin
password: admin
eureka:
instance:
instance-id: cloud-config-server-7003
#true表示显示ip
prefer-ip-address: true
client:
#true表示向注册中心注册自己
register-with-eureka: true
#true 表示从eureka抓取信息
fetch-registry: true
service-url:
defaultZone: http://eureka7002.com:7002/eureka,http://eureka7001.com:7001/eureka
##暴露总线刷新端点
management:
endpoints:
web:
exposure:
include: 'busrefresh' #2.x的版本是 bus-refresh
4.启动类
@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class SpringCloudConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudConfigServerApplication.class, args);
}
}
5.在gitee创建一个仓库并添加配置文件
gitee配置文件的内容:
config: url: jdbc:postgresql://localhost:5432/postgres?useSSL=false driverName: org.postgresql.Driver userName: postgres password: postgres env: prod version: 222556.启动项目并访问
访问地址:http://127.0.0.1:7003/config/prod/master
注:配置中心读取gitee的方式有以下几种
#读取配置规则
第一种:/{label}/{application}-{profile}.yml
分支下的文件名 /master/config-dev.yml
http://127.0.0.1:7003/master/config-dev.yml表示读取master分支的config-dev.yml
http://127.0.0.1:7003/dev/config-dev.yml表示读取dev分支的config-prod.yml
第二种:/{application}-{profile}.yml
默认读取master分支下的 config-dev.yml
http://127.0.0.1:7003/config-dev.yml
第三种/{application}/{profile}/{label} http://127.0.0.1:7003/config/dev/master 表示读取master分支的config-dev.yml
http://127.0.0.1:7003/config/prod/master表示读取master分支的config-prod.yml
4.springCloud整合config- client配置客户端
1.版本说明
SpringBoot版本为2.6.4 SpringCloud版本2021.0.1
2.初始化项目pom.xml依赖配置3.bootstrap.yml配置zhangy-spring-cloud com.zhangy.springCloud 1.0-SNAPSHOT 4.0.0 配置中心客户端1 spring-cloud-config-client1org.springframework.cloud spring-cloud-starter-bus-amqporg.springframework.cloud spring-cloud-starter-bootstraporg.springframework.cloud spring-cloud-starter-configorg.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-actuatororg.springframework.cloud spring-cloud-starter-netflix-eureka-clientcom.zhangy.springCloud spring-cloud-common1.0-SNAPSHOT
server:
port: 9010
spring:
application:
name: cloud-config-client1
cloud:
config:
label: master #指定git的具体分支
name: config
profile: prod #读取后缀名为-dev.yml或-prod.yml的 master分支的config-dev.yml的配置文件 http://127.0.0.1:7003/master/config-dev.yml
uri: http://127.0.0.1:7003 #配置中心服务端地址
#读取规则 ${spring.config.uri}/{spring.config.label}/{spring.config.name}-${spring.config.profile}.yml
rabbitmq:
host: mq所在服务器的地址
port: 5672
username: admin
password: admin
eureka:
instance:
instance-id: cloud-config-client-9010
#true表示显示ip
prefer-ip-address: true
client:
#true表示向注册中心注册自己
register-with-eureka: true
#true 表示从eureka抓取信息
fetch-registry: true
service-url:
defaultZone: http://eureka7002.com:7002/eureka,http://eureka7001.com:7001/eureka
#暴露监控断点
management:
endpoints:
web:
exposure:
include: "*"
4.启动类
@SpringBootApplication
@EnableEurekaClient
public class SpringCloudConfigClientApplication1 {
public static void main(String[] args) {
SpringApplication.run(SpringCloudConfigClientApplication1.class, args);
}
}
5.获取gitee配置信息的类
package com.zhangy.springCloud.config.client.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RefreshScope
public class TestController {
//一下参数对应gitee配置文件的内容
@Value("${config.url}")
private String url;
@Value("${config.driverName}")
private String driverName;
@Value("${config.userName}")
private String userName;
@Value("${config.password}")
private String password;
@Value("${config.version}")
private String version;
@Value("${config.env}")
private String env;
@RequestMapping("/client/getConfigInfo")
public Map getConfigInfo(){
Map map = new HashMap<>();
map.put("url",url);
map.put("driverName",driverName);
map.put("userName",userName);
map.put("password",password);
map.put("version",version);
map.put("env",env);
return map;
}
}
按照上述步骤在初始化一个配置客户端项目,注意修改bootstrap.yml的端口号服务名和实例id
比如两个客户端的端口号分别为9010和9011
9010的yml配置如上所示,9011的yml配置如下
server:
port: 9011
spring:
application:
name: cloud-config-client2
cloud:
config:
label: master #指定git的具体分支
name: config
profile: prod #读取后缀名为-dev.yml或-prod.yml的 master分支的config-dev.yml的配置文件 http://127.0.0.1:7003/master/config-dev.yml
uri: http://127.0.0.1:7003 #配置中心服务端地址
#读取规则 ${spring.config.uri}/{spring.config.label}/{spring.config.name}-${spring.config.profile}.yml
rabbitmq:
host: mq所在服务器的地址
port: 5672
username: admin
password: admin
eureka:
instance:
instance-id: cloud-config-client-9011
#true表示显示ip
prefer-ip-address: true
client:
#true表示向注册中心注册自己
register-with-eureka: true
#true 表示从eureka抓取信息
fetch-registry: true
service-url:
defaultZone: http://eureka7002.com:7002/eureka,http://eureka7001.com:7001/eureka
#暴露监控断点
management:
endpoints:
web:
exposure:
include: "*"
6.启动两个客户端项目并访问
访问地址:http://127.0.0.1:9010/client/getConfigInfo http://127.0.0.1:9011/client/getConfigInfo
结果如下:
7.更改gitee配置文件内容使用消息总线bus进行广播
8.查看RabbitMq的信息 9.查看Eureka注册中心的服务 5.总结消息总线流程图第一个post请求代表所有的配置客户端9010和9011都能收到gitee最新的消息
http://127.0.0.1:7003/actuator/busrefresh/
第二个post请求代表只有9011的客户端能获取最新的gitee配置信息,9010不能获取最新的
格式:http://127.0.0.1:7003/actuator/busrefresh/客户端微服务名:端口 http://127.0.0.1:7003/actuator/busrefresh/cloud-config-client2:9011



