Consul 入门实战(3)--Spring Cloud Consul 使用
Cousul 可以作为注册中和配置中心来使用,本来主要介绍 Spring Cloud 整合 Consul 的使用,文中所使用到的软件版本:Java 1.8.0_191、Consul 1.11.1、Spring Boot 2.3.12.RELEASE、Spring Cloud Hoxton.SR12。
1、Consul 作为注册中心
1.1、引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency>
1.2、配置(application.yml)
spring: cloud: consul: host: 10.49.196.20 port: 8500 discovery: register: true prefer-ip-address: true health-check-critical-timeout: 10s #监控检查失败多长时间后,删除注册的服务
如果需要调用的服务在另外一个数据中心,则需要增加 spring.cloud.consul.datacenters 配置;如在本服务在数据中心 dc2,需调用的一个服务(scdemo-server)在另一个数据中心 dc1,则配置如下:
spring: cloud: consul: host: 10.49.196.20 port: 8500 discovery: register: true prefer-ip-address: true datacenters: scdemo-server: dc1 health-check-critical-timeout: 10s #监控检查失败多长时间后,删除注册的服务
注:在使用新版本(SpringBoot 2.4.12/2.4.13/2.5.6/2.5.7/2.5.8、SpringCloud 2020.0.4)时,spring.cloud.consul.datacenters 配置没有效果,还是报找不到服务,应该是新版本还有 bug。
配置完成后,正常启动服务即可。
1.3、删除无效的服务
如果在注册服务是未设置 spring.cloud.consul.discovery.health-check-critical-timeout 参数,可以通过命令行或 API 来删除无效的服务。
命令行:
./consul services deregister -id=scdemo-client-9002
API:
curl -X PUT http://10.49.196.10:8500/v1/agent/service/deregister/scdemo-client-9002
2、Consul 作为配置中心
2.1、引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-config</artifactId> </dependency>
2.2、配置(bootstrap.yml)
spring: cloud: consul: host: 10.49.196.10 port: 8500 config: format: yaml prefix: config #配置所在目录 data-key: data #配置的 key
2.3、在 Consul 控制台配置 Key
key 为:config/scdemo-server/data (scdemo-server 为对应的服务名)
value 为:
test:
k1: v1
k2: v22
如下图:
2.4、获取配置信息
@Autowired private Environment environment; @Scheduled(cron = "0/10 * * * * *") public void test() { logger.info("test.k1={}", environment.getProperty("test.k1")); logger.info("test.k2={}", environment.getProperty("test.k2")); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
2021-01-23 Java操作XML(9)--Castor使用