docker-compose搭建consul集群环境

docker-compose搭建consul集群环境

    • docker-compose.yaml
    • 参数解析
    • 启动服务
    • 查看节点
    • UI界面地址
    • 使用集群

docker-compose.yaml

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

参数解析

-server : 定义agent运行在server模式
-bootstrap-expect :在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直 等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用 
-bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0 -node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名
-ui: 启动web界面
-rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。 
-config-dir::配置文件目录,里面所有以.json结尾的文件都会被加载 
-client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服 务,如果你要对外提供服务改成0.0.0.0
-join 192.168.110.121 : 启动时加入这个集群
-datacenter:数据中心名称,缺省值为dc1。
-enable-script-checks: 检查服务是否处于活动状态,类似开启心跳。

启动服务

docker-compose up

查看节点

docker exec -t node1 consul members

UI界面地址

http://localhost:8500

使用集群

//添加
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

你可能感兴趣的:(golang,consul)