Spring Cloud Consul 服务注册中心
说明
- 本博客是 Spring Cloud 微服务化(精简完整版)的一部分。
一、安装 Consul
1、下载 Consul 包
- 在 https://www.consul.io/downloads.html 下载合适的 consul 包。博主这里下载的是 windows 64 位版本:
consul_1.4.3_windows_amd64.zip
consul_1.4.3_windows_amd64.zip
包含一个名为consul
独立的二进制文件。因为博主下载的是 windows 版,所以它是consul.exe
。
2、配置环境变量
- 解压
consul_1.4.3_windows_amd64.zip
到一个目录,把这个目录配置到 PATH。 - 配置环境变量是为了可以在任意的位置都可以方便的运行
consul
命令 - 配置环境变量比较简单,这里省略。
3、验证安装
- 打开一个终端,运行
consul
命令,输出内容应该类似:
二、启动 Consul 代理
1、启动 Consul 代理
- 启动 Consul 代理的基础文档:https://www.consul.io/docs/agent/basics.html
- Consul 代理的配置文档:https://www.consul.io/docs/agent/options.html#command-line-options
- 博主这里,以开发的服务模式启动:
- 命令:
consul agent -dev
- 命令:
2、访问 Consul 代理
- 默认情况下,server 模式的 Consul 代理会运行在 8500 端口
- 访问:http://localhost:8500
三、Spring Cloud Consul 服务注册与发现
1、如何启用(激活)?
- 官网文档描述:通过引入
spring-cloud-starter-consul-discovery
即可。 - 博主这里实际引入的是:
spring-cloud-starter-consul-all
,它包含了 : - 博主这里引入
spring-cloud-starter-consul-all
,是因为后面其他功能需要用到另外两个依赖包。 -
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-all</artifactId> </dependency>
2、注册服务到 Consul
-
Consul 客户端
@SpringBootApplication @RestController public class Application { @RequestMapping("/") public String home() { return "Hello world"; } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
-
Consul 配置
-
application.yml
spring: cloud: consul: host: localhost port: 8500 discovery: enabled: true register: true service-name: consul_web
- 其实
enabled: true
和register: true
可以不配置,他们的默认值就是 true。这里把他们列出来是为了强调有这样的配置
- 其实
-
服务注册。项目启动之后,会自动注册到 Consul 代理。
-
把管理注册为一个单独的服务。
- 首先,需要添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
- 其次,需要修改
application.yml
:spring: application: name: consul_web cloud: consul: host: localhost port: 8500 discovery: enabled: true register: true server: port: 8000 management: server: port: 4452
- 重启应用,在 Consul 代理管理页面可以看到单独的服务:
- 首先,需要添加依赖: