使用docker compose搭建consul集群环境的例子
consul基本概念
server模式和client模式
server模式和client模式是consul节点的类型;client不是指的用户客户端。
server模式启动的命令行参数
这里说明一下,另外一个参数-bootstrap,用来控制一个server是否运行在bootstrap模式:当一个server处于bootstrap模式时,它可以选举自己为leader;注意在一个datacenter中只能有一个server处于bootstrap模式。所以这个参数一般只能用在只有一个server的开发环境中,在有多个server的cluster产品环境中,不能使用这个参数,否则如果多个server都标记自己为leader那么会导致数据不一致。另外该标记不能和-bootstrap-expect同时指定。
使用docker-compose来搭建如下的consul集群环境
集群包含三个server:node1, node2, node3 集群包含一个client:node4;并且在client上提供web UI访问服务。.编辑docker-compose.yml文件
version: '2'
networks:
byfn:
services:
consul1:
image: consul
container_name: node1
command: agent -server -bootstrap-expect=3 -node=node1 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
networks:
- byfn
consul2:
image: consul
container_name: node2
command: agent -server -retry-join=node1 -node=node2 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
depends_on:
- consul1
networks:
- byfn
consul3:
image: consul
container_name: node3
command: agent -server -retry-join=node1 -node=node3 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
depends_on:
- consul1
networks:
- byfn
consul4:
image: consul
container_name: node4
command: agent -retry-join=node1 -node=ndoe4 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1 -ui
ports:
- 8500:8500
depends_on:
- consul2
- consul3
networks:
- byfn
启动服务
$ docker-compose up $ docker exec -t node1 consul members Node Address Status Type Build Protocol DC Segment node1 172.21.0.2:8301 alive server 1.4.0 2 dc1node2 172.21.0.4:8301 alive server 1.4.0 2 dc1 node3 172.21.0.3:8301 alive server 1.4.0 2 dc1 ndoe4 172.21.0.5:8301 alive client 1.4.0 2 dc1
访问http://127.0.0.1:8500

注册配置中心例子
spring:
application:
name: cloud-payment-service
####consul注册中心地址
cloud:
consul:
enabled: true
host: 127.0.0.1
port: 8500
discovery:
hostname: 127.0.0.1
prefer-ip-address: true
service-name: ${spring.application.name}
#healthCheckInterval: 15s
instance-id: ${spring.application.name}-8002
enabled: true
KV访问的例子
$ docker exec -t node4 consul kv put foo "Hello foo" $ docker exec -t node4 consul kv put foo/foo1 "Hello foo1" $ docker exec -t node4 consul kv put foo/foo2 "Hello foo2" $ docker exec -t node4 consul kv put foo/foo21 "Hello foo21" $ docker exec -t node4 consul kv get foo Hello foo $ docker exec -t node4 consul kv get -detailed foo/foo1 CreateIndex 124 Flags 0 Key foo/foo1 LockIndex 0 ModifyIndex 124 Session - Value Hello foo1 $ docker exec -t node4 consul kv get -keys -separator="" foo foo foo/foo1 foo/foo2 foo/foo2/foo21 $ docker exec -t node4 consul kv get not-a-real-key Error! No key exists at: not-a-real-key
以上就是使用docker compose搭建consul集群环境的详细内容,更多关于docker compose集群环境的资料请关注免费资源网其它相关文章!
您可能感兴趣的文章
- 01-12Docker部署rabbitmq遇到的两个问题
- 01-12最新虚拟机VMware 14安装教程
- 01-12使用docker compose安装harbor私有仓库的详细教程
- 01-12Windows下Docker安装各种软件的详细过程
- 01-12seata docker 高可用部署的详细介绍
- 01-12浅谈Tomcat多层容器的设计
- 01-12Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤
- 01-12解决vscode docker插件docker.socket权限问题
- 01-12Docker中运行PostgreSQL并推荐几款连接工具
- 01-12Docker核心原理之 Cgroup详解


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-23linux中ftp无法访问怎么办
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 12-05Docker安装Jenkins全过程
- 01-05Shell脚本去重的几种方法实例
- 12-22kvm虚拟机配置NAT端口转发的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法




