go语言 microservices微服务(一)=>consul服务发现

本篇不做概念介绍,只是技术笔记和心得。

Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。 Consul是分布式的、高可用的、可横向扩展的。它具备以下特性 :

​ 服务发现:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册。

​ 健康检查:健康检测使consul可以快速的告警在集群中的操作和服务发现的集成,可以防止服务转发到故障的服务上面。

​ 键/值存储:一个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方操作。

​ 多数据中心:无需复杂的配置,即可支持任意数量的区域。
下载: https://www.consul.io/downloads.html
下载后解压,直接得到二进制文件
consul启动
1.以server模式启动
consul agent
参数:
-server 定义agent运行在server模式
启动第一个server (leader) ,让其它服务加入到自己
consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n1 -bind=自己的ip地址 -ui -config-dir /etc/consul.d -rejoin -join 自己的ip地址 -client 0.0.0.0

-bootstrap-expect 在一个datacenter中期望提供的server节点数,当该值提供时,consul会等到指定server数目时才会启动整个集群。不和bootstrap公用
-data-dir 提供一个目录用来存在agent状态,所有的agent都需要该目录
-node 节点在集群中的名称,必须时唯一的,默认时该节点的主机名
-bind 该地址用来在集群内部通讯,集群中所有节点到该地址必须可达,默认时0.0.0.0(默认可能会出错,一般写自己ip)
-ui 启动web界面
-config-dir 配置文件目录,目录中所有json文件都会被加载
-rejoin 使consul忽略先前的离开,将在重新启动后仍尝试加入集群
-client consul服务监听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1不提供对外服务,如果需要提供服务,可是用0.0.0.0
-json 启动时加入集群,ip写leader的地址
2.以client模式启动
不写-server
consul agent -data-dir /tmp/consul -node=n3 -bind=自己的ip地址 -config-dir /etc/consul.d -rejoin -join leader的ip地址
其它命令:
consul members 查看集群成员
consul leave 停止agent
json格式

{
“service”: { #服务
“name”: “web”, #名称
“tags”: [“master”], #标记
“address”: “127.0.0.1”, #ip
“port”: 10000, #端口
“checks”: [
{
“http”: “http://localhost:10000/health”,
“interval”: “10s” #检查时间
}
]
}
}

你可能感兴趣的:(微服务)