Consul讲解
发现常见的微服务:
Zookeeper
Eureka
Etcd
Consul
本文主要以consul为主,如果你在大量接触或使用微服务的话,你可能会碰到一个问题?当你创建服务越来越多时,这些服务间的通信就越来越难管理,而且维护代价会越来越高,consul会给你答案!
Consul介绍:
Consul是一个分布式,高可用且支持多数据中心的服务发现,配置和编排工具。Consul支持大规模部署,配置和维护面向服务的体系结构。
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置,与其他分布式服务注册与发现的方案比如Airbnb的smartstack等相比,consul的方案更“一站式”,内置了服务注册于发现框架、分布一致性协议实现、健康状态检查、key/value存储、多数据中心方案,不再需要依赖其他工具(比如zookeeper等)。使用起来也比较简单。Consul用Golang实现,因此具有天然可移植性(支持linux、windows、和mac os x);安装包仅包含一个可执行文件,以方便部署,与docker等轻量级容器可无缝配合。
Consul主要功能
服务发现
通过dns或http接口是的消费者发现服务,应用程序可以轻松找到所依赖的服务。
健康检查
防止将请求转发不健康的主机
键值存储
可以使用分层键/值存储,比如功能标记、动态配置等。
多数据中心
开箱即用,不需要复杂的配置。这就意味着不用建立抽象的逻辑思维来扩展多个地区。
1) consul agent是consul核心组件,分为client和server两种工作模式。
a) 默认以client模式运行,提供服务注册、健康状态检查、转发查询给server leader
b) Server模式启动时使用-servesr选项指定,用于维护consul集群状态、raft协议进行选举。