Consul服务注册中心

本文介绍了Consul,一个集服务注册、发现、健康检查、配置存储和多数据中心支持于一体的开源工具。它简化了分布式系统的管理,使用Go语言编写,支持多种平台。重点讲解了Consul的角色、工作原理和安装方法。

1.Consul 介绍

        Consul作为开源工具,用于实现分布式系统的服务发现与 配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服 务注册与发现框架、分布式一致性协议实现、健康检查、Key/Value 存储(配置中 心)、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等),使用起来 也较为简单。

        Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、Windows 和 Mac OS);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无 缝配合。

2.Consul 特性

  • Raft 算法
  • 服务发现
  • 健康检查
  • Key/Value 存储(配置中心)
  • 多数据中心 支持 http 和 dns 协议接口
  • 官方提供 Web 管理界

3.Consul角色

client:客户端,无状态,将 HTTP 和 DNS 接口请求转发给局域网内的服务端集群。

server:服务端,保存配置信息,高可用集群,每个数据中心的 server 数量推荐 为 3 个或者 5 个。

 图中有两个数据中心,分别为 Datacenter1 和 Datacenter2 。Consul 非常 好的支持多个数据中心,每个数据中心内,有客户端和服务器端,服务器一般为 3~5 个,这样可以在稳定和性能上达到平衡,因为更多的机器会使数据同步很慢。不过 客户端是没有限制的,可以有成千上万个。

4.Consul 工作原理

(1) 服务发现以及注册

        当服务 Producer 启动时,会将自己的 Ip/host 等信息通过发送请求告知 Consul,Consul 接收到 Producer 的注册信息后,每隔 10s(默认)会向 Producer 发 送一个健康检查的请求,检验 Producer 是否健康。

(2) 服务调用

        当 Consumer 请求 Product 时,会先从 Consul 中拿到存储 Product 服务的 IP 和 Port 的临时表(temp table),从temp table 表中任选一个· Producer 的 IP 和 Port, 然 后根据这个 IP 和 Port,发送访问请求;temp table 表只包含通过了健康检查的 Producer 信息,并且每隔 10s(默认)更新。

5.Consul安装

5.1 下载

        访问 Consul 官网:https://www.consul.io 下载 Consul 的最新版本。

 5.2安装单节点

下载后的压缩包中就只有一个 consul.exe 的执行文件。

 

 cd 到对应的目录下,使用 cmd 启动 Consul

# -dev表示开发模式运行,另外还有 -server 表示服务端模式运行

consul agent -dev -client=0.0.0.0

为了方便启动,也可以在 consul.exe 同级目录下创建一个脚本来启动,脚本内容如下:

consul agent -dev -client=0.0.0.0

pause

访问管理后台:http://localhost:8500/ 看到下图意味着我们的 Consul 服务启动 成功了。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值