单机版的zookeeper
docker pull zookeeper
docker run -d -p 2181:2181 --name some-zookeeper --restart always 3487af26dee9
docker ps
docker exec -it d5c6f857cd88 bash
./bin/zkCli.sh
集群版的zookeeper
mkdir /usr/local/zookeeper-cluster
mkdir /usr/local/zookeeper-cluster/node1
mkdir /usr/local/zookeeper-cluster/node2
mkdir /usr/local/zookeeper-cluster/node3
ll /usr/local/zookeeper-cluster/
java端
未完待续
部署consul
部署consul集群
server: 以server身份启动。默认是client
agent: 表示启动 agent 进程
bootstrap-expect:集群要求的最少server数量,当低于这个数量,集群即失效。
data-dir:data存放的目录,更多信息请参阅consul数据同步机制
node:节点id,集群中的每个node必须有一个唯一的名称。默认情况下,Consul使用机器的hostname
bind:监听的ip地址。默认绑定0.0.0.0,可以不指定。表示Consul监听的地址,而且它必须能够被集群中的其他节点访问。Consul默认会监听第一个private IP,但最好还是提供一个。生产设备上的服务器通常有好几个网卡,所以指定一个不会出错
client: 客户端的ip地址,0.0.0.0是指谁都可以访问(不加这个,下面的ui :8500无法访问)
ui: 可以访问UI界面
-config-dir指定配置文件夹,Consul会加载其中的所有文件
-datacenter 指定数据中心名称,默认是dc1
join: 表示加入到指定集群中
docker pull consul
mkdir -p /data/consul
docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=consul1 consul agent -server -bootstrap -ui -client='0.0.0.0'
docker inspect --format '{{ .NetworkSettings.IPAddress }}' consul1
docker run -d --name=consul3 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --client=0.0.0.0 --join 172.17.0.2;
docker run -d --name=consul4 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=false --client=0.0.0.0 --join 172.17.0.2;
docker exec -it consul1 consul members
报红叉解决方法看踩坑