ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Consul

2026/9/16 4:15:17 拓冰建站 浏览量
Consul

简介

Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp 公司用Go语言开发。

提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。

它具有很多优点。包括:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS协议支持跨数据中心的WAN集群提供图形界面跨平台,支持Linux、Mac、Windows。

作用:

  • 服务发现 - 提供HTTP和DNS两种发现方式。
  • 健康监测 - 支持多种方式,
  • HTTP、TCP、Docker、Shell脚本定制化
  • KV存储 - Key、Value的存储方式 多数据中心
  • Consul支持多数据中心 可视化Web界面

安装

docker pull consul:1.15.4

docker run -d -p 8500:8500 --restart=always --name=consul consul:1.15.4 agent -server -bootstrap -ui -node=1 -client=‘0.0.0.0’

agent: 表示启动 Agent 进程。server:表示启动 Consul Server 模式client:表示启动 Consul Cilent 模式。bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。ui:表示启动 Web UI 管理器,默认开放端口 8500,所以上面使用 Docker 命令把 8500 端口对外开放。node:节点的名称,集群中必须是唯一的,默认是该节点的主机名。client:consul服务侦听地址,这个地址提供HTTPDNSRPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0join:表示加入到某一个集群中去。 如:-json=192.168.0.11

运行后访问http://localhost:8500/ 进入到consul管理界面则说明安装成功。

在这里插入图片描述

springcloud注册到Consul注册中心

导入依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency>

配置application.yml文件:

server:port: 8006
spring:application:name: cloud-provider-paymentcloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}heartbeat:enabled: true

在启动类加入@EnableDiscoveryClient注解

启动成功后,可以在管理界面中查找到相关的服务。
在这里插入图片描述