Consul 作为一款优秀的服务治理框架,受到的关注似乎并没有想象的多。网上关于它的介绍也是寥寥无几,基本上都是围绕 Spring Cloud Consul 来的。
公司用的服务发现框架就是 Consul,虽然只用了服务发现功能,但是它出色的性能让我着迷。
为了更深入地学习 Consul,也让更多人了解 Consul,我准备将 Consul 的文档翻译成中文,但愿自己能坚持下来。
Consul 是一个分布式服务网格(service mesh),无论是跨平台还是公私有云,他都可以连接,加密和配置服务。
静态架构向动态架构迁移过程中,通信方式从静态IP访问变成动态的服务发现,安全防护也从静态防火墙变成了动态的服务隔离。
基于主机IP的通信
基于服务的通信
服务发现可以让服务注册并发现对方。
通过动态的TLS加密和身份认证保证服务之间的通信安全。
丰富的Key/Value存储功能让服务配置更简洁。
服务注册,健康检查,服务授权策略,故障迁移逻辑等等功能均可以通过API调用实现自动化。
- $ curl http://localhost:8500/v1/kv/deployment
- [
- {
- "LockIndex": 1,
- "Session": "1c3f5836-4df4-0e26-6697-90dcce78acd9",
- "Value": "Zm9v",
- "Flags": 0,
- "Key": "deployment",
- "CreateIndex": 13,
- "ModifyIndex": 19
- }
- ]
-
服务间可以跨平台跨公私有云调用,无论是从Kubernetes到虚拟机,还是从容器到Serverless,服务间都可以通讯。