运行环境:
Windows 10 专业版
Docker for Windows 18.06.0-ce(安装方法参见win10环境下安装Docker)
主要参考文章《springcloud(十三):Eureka 2.X 停止开发,但注册中心还有更多选择:Consul 使用详解》
1 我对Consul的理解
Consul是什么,为什么用Consul,请大家看上面提到的Consul使用详解或百度。这里列出一些我试出来或理解的一些东西。
- datacenter(数据中心):提供了多数据中心功能,可以把注册和发现服务根据地域、组织、系统划分开,组建不同的数据中心,访问本地数据中心的server可以发现别的数据中心的service。
- server节点:主要提供注册服务,多个节点可以组成集群,集群中注册的所有service各节点都能访问。
- client节点:主要提供发现服务,server一般是3、5各组成集群,而client则没限制。
- service(服务生产者):可以在一个server节点上注册多个同名service来实现负载均衡,也可以把一个service注册到多个server节点上来防止因某个server节点挂了而找不到注册在它下面的service。
- consumer(服务消费者):想调用service的微服务都是服务消费者。
2 用docker运行consul集群
2.1 下载consul镜像
docker pull consul
docker images
下载consul镜像
2.2 创建数据中心dc1
注意:带”$(“这种命令的操作必须在PowerShell下执行。
docker run -d -h node1 --name node1 -p 8501:8500 consul agent -server -bootstrap-expect=3 -client 0.0.0.0 -ui
$JOIN_IP="$(docker inspect -f '{
{.NetworkSettings.IPAddress}}' node1)"
docker run -d -h node2 --name node2 -p 8502:8500 consul agent -server -join $JOIN_IP -client 0.0.0.0 -ui
docker run -d -h node3 --name node3 -p 8503:8500 consul agent -server -join $JOIN_IP -client 0.0.0.0 -ui
docker run -d -h node4 --name node4 -p 8504:8500 consul agent -server -join $JOIN_IP -client 0.0.0.0 -ui
docker run -d -h node5 --name node5 -p 8505:8500 consul agent -server -join $JOIN_IP -client 0.0.0.0 -ui
docker run -d -h node6 --name node6 -p 8506:8500 consul agent -join $JOIN_IP