获取consul中配置为null_consul微服务治理中心踩坑

以consul为微服务治理中心的微服务架构演示

方法论

1. 前端组件化(可视化工具)

2. 后端微服务化(分布式统一管控)

3. 迭代自动化(CI/CD)

4. 过程流水线化(DevOps)

5. 定义接口入/出参后,通过KV模拟数据即可实现前后端联调,再深入开发相关微服务

本工程完整演示了以consul为微服务治理中心的标准微服务架构各个基本模块功能,通过该项目能够完整了解微服务注册、发现、健康监测、负载均衡、全链路监控、配置中心、权限控制等。

8b04bdbc1a94045b1dd95de841749c65.png

微服务系统总体架构

880d2e8aa36c2c0feb673432b67337d3.png

consul架构

consul集群部署说明

修改配置文件,存放目录为consul.d,后缀为.json,可以有多个配置文件,后面的属性覆盖前面的。

1.公共基础配置文件/etc/consul.d/base-config.json

{"ports": {"http": 8500,"dns": 8600,"serf_lan": 8301,"serf_wan": 8302,"server": 8300}}

2.server节点的ACL配置文件acl.json

{"datacenter": "dc1","acl_datacenter": "dc1","acl_master_token": "6407e6d8-1696-4b98-826d-0ad9a5c93449","acl_default_policy": "deny","server": true,"log_level": "DEBUG","bootstrap_expect": 3,"client_addr": "0.0.0.0"}

3.client节点的ACL配置文件acl.json

{"datacenter": "dc1","acl_datacenter": "dc1","acl_master_token": "6407e6d8-1696-4b98-826d-0ad9a5c93449","acl_token": "dd2c1eb3-7698-efb1-d213-f84d40fb5970","acl_default_policy": "deny","server": false,"log_level": "DEBUG","client_addr": "0.0.0.0"}

备注:

1. 先启动server

2. 浏览器打开UI,用acl_master_token设置ACL

3. 创建一个新的ACL

4. 将token配置到client的ACL文件的acl_token

5. 逐步启动client

6. 这个acl_token就是java bootstrap.yml中的consul配置

以docker方式启动consul

1.启动主服务server1

docker run -d --net host -p 8600:8600 -p 8500:8500 -p 8600:53/udp --name consul-server -v /etc/consul.d:/etc/consul.d consul:latest agent -bind=172.16.15.233 -config-dir=/etc/consul.d -node=server1 -ui

2.启动主服务server2

docker run -d --net host -p 8600:8600 -p 8500:8500 -p 8600:53/udp --name consul-server -v /etc/consul.d:/etc/consul.d consul:latest agent -bind=172.16.15.237 -config-dir=/etc/consul.d -node=server2 -retry-join=172.16.15.233

3.启动主服务server3

docker run -d --net host -p 8600:8600 -p 8500:8500 -p 8600:53/udp --name consul-server -v /etc/consul.d:/etc/consul.d consul:latest agent -bind=172.16.15.232 -config-dir=/etc/consul.d -node=server3 -retry-join=172.16.15.233

4.启动客户端client1

docker run -d --net host -p 8600:8600 -p 8500:8500 -p 8600:53/udp --name consul-client -v /etc/consul.d:/etc/consul.d consul:latest agent -bind=172.16.15.230 -config-dir=/etc/consul.d -node=client1 -retry-join=172.16.15.233

5.启动客户端client2

docker run -d --net host -p 8600:8600 -p 8500:8500 -p 8600:53/udp --name consul-client -v /etc/consul.d:/etc/consul.d consul:latest agent -bind=172.16.15.231 -config-dir=/etc/consul.d -node=client2 -retry-join=172.16.15.233

微服务模块

Springcloud 接入consul

1. 基本依赖包

参考父工程的pom文件

2. 把Spring consul的配置存放到bootstrap.yml文件里,而不是application.yml里边

spring:cloud:consul:host: 172.28.50.28port: 8500discovery:register: trueprefer-ip-address: trueinstance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}acl-token: dd2c1eb3-7698-efb1-d213-f84d40fb5970config:enabled: trueformat: yamlwatch:enabled: trueprefix: configdata-key: data

3. 网关服务,在spring注入的时候,要把需要引入的组件注入到主应用里边

//注册到consul的注入项@EnableDiscoveryClien
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值