为什么选consul

Spring Cloud 支持的服务发现软件以及特性对比:

FeatureeuerkaConsulzookeeperetcd
服务健康检查可配支持服务状态,内存,硬盘等(弱)长连接,keepalive连接心跳
多数据中心支持
kv 存储服务支持支持支持
一致性raftpaxosraft
capapcacpcp
使用接口(多语言能力)http(sidecar)支持 http 和 dns客户端http/grpc
watch 支持支持 long polling/大部分增量全量/支持long polling支持支持 long polling
自身监控metricsmetricsmetrics
安全acl /httpsaclhttps 支持(弱)
spring cloud 集成已支持已支持已支持已支持

 

docker 安装 consul

1、拉取镜像

docker search consul

docker pull consul

2、启动镜像

docker run -d --name consulserver1 --net=host -e'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -server -bind=10.1.54.162 -bootstrap-expect=1  -client 0.0.0.0 -ui

–net=host docker参数, 使得docker容器越过了netnamespace的隔离,免去手动指定端口映射的步骤

-server consul支持以server或client的模式运行, server是服务发现模块的核心, client主要用于转发请求

-advertise 将本机私有IP传递到consul

-bootstrap-expect 指定consul将等待几个节点连通,成为一个完整的集群

-retry-join 指定要加入的consul节点地址,失败会重试, 可多次指定不同的地址

-client consul绑定在哪个client地址上,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1

-bind 该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0

-allow_stale 设置为true, 表明可以从consul集群的任一server节点获取dns信息, false则表明每次请求都会经过consul server leader

--name DOCKER容器的名称

-client 0.0.0.0 表示任何地址可以访问。

-ui  提供图形化的界面。
 

3、验证是否成功

地址:http://10.1.54.162:8500/ui

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐