Back to Microservices

See Also Spring CloudDockerKubernetes

Consul by HashiCorp

Consul(['kɑnsl] n. 领事)是一个分布式服务网格,用于跨任何运行时平台和公共或私有云的环境下连接、保护和配置服务。

1. Introduction to Consul

https://www.consul.io/

1.1. What is Consul?

Consul 是一个服务网格解决方案,提供了一个功能齐全的控制平面,具有服务发现、配置和分割功能。这些特性可以根据需要单独使用,也可以一起用于构建完整的服务网格。Consul 需要一个数据平面,并支持代理和本地集成模型。Consul 通过一个简单的内置代理进行集成,使一切开箱即用,但也支持第三方代理集成,如 Envoy。

关键特性

1.2. Basic Architecture of Consul

https://www.consul.io/assets/images/consul-arch-420ce04a.png

为 Consul 提供服务的每个节点都运行一个 Consul 代理。在发现其他服务或获取/设置键/值数据时,不需要运行代理。代理负责检查节点和节点本身上的服务的健康状况。

代理与一个或多个 Consul 服务器通信。Consul 服务器是存储和复制数据的地方。服务器自己选举一个领导者。虽然 Consul 可以在一台服务器上运行,但建议使用3到5台服务器来避免导致数据丢失的故障场景。建议为每个数据中心配置一个 Consul 服务器集群。

需要发现其他服务或节点的基础设施组件可以查询任何 Consul 服务器或任何 Consul 代理。代理自动将查询转发给服务器。

每个数据中心运行一个 Consul 服务器集群。当跨数据中心服务发现或配置请求发出时,本地 Consul 服务器将请求转发给远程数据中心并返回结果。

2. Consul vs. Other Software

https://www.consul.io/intro/vs/index.html Consul 解决的问题是多种多样的,但每一个单独的特点已经被许多不同的系统解决。虽然没有一个单一的系统可以提供 Consul 的所有功能,但是有其他的选择可以解决其中的一些问题。

2.1. Consul vs. Istio

https://www.consul.io/intro/vs/istio.html

3. Getting Started

https://learn.hashicorp.com/consul/getting-started/install

3.1. Run with Docker

https://hub.docker.com/_/consul Dockerfile.1.5.0

docker pull consul
docker run --name consul -d -p 8500:8500 -p 8600:8600/udp consul

3.2. Getting Started with Kubernetes

https://learn.hashicorp.com/consul/getting-started-k8s/minikube

4. Reference

MainWiki: Consul (last edited 2019-05-17 21:54:59 by twotwo)