参考资料

  1. docker安装mysql详细说明以及案例
  2. BusyBox 是一个集成了多个 Unix 常用工具的轻量级软件
  3. cpolar 是一款内网穿透工具
  4. Ruby 是一种动态、开源的编程语言
  5. Django 是一个高级 Python Web 框架,鼓励快速开发和干净、实用的设计。
  6. Couchbase 是一个高性能、分布式 NoSQL 数据库,支持键值存储、文档存储和全文搜索功能。
  7. docker安装rabbitmq详细说明以及案例
  8. Apache Flink 是一个开源的流处理框架

Consul 简介

Consul 是 HashiCorp 公司开发的服务网格解决方案,提供服务发现健康检查键值存储多数据中心支持功能。基于 Raft 协议实现分布式一致性,支持跨平台运行。

核心特点

  1. 服务发现:支持 DNS/HTTP 接口查询服务状态

  2. 健康检查:主动监测服务健康状态

  3. KV 存储:分布式键值数据存储

  4. 多数据中心:原生支持多数据中心部署

  5. 安全通信:TLS 证书加密和 ACL 访问控制

  6. 多协议支持:兼容 gRPC、HTTP、DNS 协议

最新版本

  • 当前版本:1.16 (2023年发布)

  • 更新内容

    • 增强 Envoy 集成支持

    • 改进 ACL 系统性能

    • 新增 HCP Consul 托管服务支持

下载资源

  • 官网地址:https://www.consul.io

  • 镜像下载:https://releases.hashicorp.com/consul/

  • 文档地址:https://developer.hashicorp.com/consul/docs

Docker 安装示例

docker run -d --name consul \
  -p 8500:8500 \
  -p 8600:8600/udp \
  consul:1.16 agent -server -ui -node=node1 -bootstrap-expect=1 -client=0.0.0.0

YAML 配置示例 (config.yml)

datacenter: "dc1"
server: true
bootstrap_expect: 3
node_name: "node1"
ui: true
bind_addr: "0.0.0.0"
client_addr: "0.0.0.0"
data_dir: "/consul/data"
log_level: "INFO"
ports:
  http: 8500
  dns: 8600

常见问题

  1. 端口冲突:确保 8300-8302、8500、8600 端口未被占用

  2. ACL 错误:启动时添加 -acl-enable 参数

  3. 节点无法加入集群:检查 -retry-join 参数和网络连通性

  4. 数据持久化:Docker 需挂载 /consul/data 目录

  5. UI 无法访问:确认配置中 ui=trueclient_addr="0.0.0.0"