目录
1、到官网下载Consul https://www.consul.io/
2、解压下载好的压缩包
3、配置系统环境变量
4、WIN+R启动cmd窗口,输入consul启动命令
5、启动完成后访问Consul页面 http://localhost:8500(8500为Consul默认端口号)
6、server-member服务引入consul依赖
7、修改server-member服务启动类,使用通用注册中心注解@EnableDiscoveryClient
8、修改server-member配置文件application.yml
9、运行server-member服务的启动类,访问consul页面
10、consul健康检查机制(类似心跳检测,由注册中心主动发送请求,响应成功状态码200 代表服务可用)
10.1、使用默认的健康检查路径http://DESKTOP-I144RP0:9081/actuator/health
10.1.1、在server-member中新建一个Controller提供给consul做健康检查
10.1.2、重启server-member服务,重新访问consul页面
10.2、重新指定健康检查路径
10.2.1、修改server-member服务的application.yml
10.2.2、修改HealthController接口,使用application.yml配置文件配置的路径
10.2.3、重启server-member服务,重新访问consul页面
11、同个服务启动多个实例展示
1、到官网下载Consul https://www.consul.io/
进入官网,点击Download
2、解压下载好的压缩包
里面只有一个启动项
3、配置系统环境变量
将consul.exe所在的文件夹路径添加到系统环境变量Path中,类似配置Java环境变量
4、WIN+R启动cmd窗口,输入consul启动命令
Consul单机服务 consul agent -dev
Consul 集群部署的选项 consul agent -dev [/server或 /client]
5、启动完成后访问Consul页面 http://localhost:8500(8500为Consul默认端口号)
6、server-member服务引入consul依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
7、修改server-member服务启动类,使用通用注册中心注解@EnableDiscoveryClient
@SpringBootApplication
@EnableDiscoveryClient //通用的注册中心客户端注解
public class MemberApp {
public static void main(String[] args) {
SpringApplication.run(MemberApp.class, args);
}
}
8、修改server-member配置文件application.yml
server:
port: 9081
spring:
application:
name: server-member
cloud:
# zookeeper:
# #配置连接注册中心地址
# connect-string: localhost:2181
consul:
host: localhost
port: 8500
9、运行server-member服务的启动类,访问consul页面
可以看到server-member已经注册到consul注册中心了,1 instance表示当前服务有一个实例
10、consul健康检查机制(类似心跳检测,由注册中心主动发送请求,响应成功状态码200 代表服务可用)
点击consul页面的server-member服务,可以展示所有的实例信息
点击node checks ,发现默认的健康路径为404
此时由于健康检查不通过,所以我们访问server-member会失败,表示节点不可用
10.1、使用默认的健康检查路径http://DESKTOP-I144RP0:9081/actuator/health
10.1.1、在server-member中新建一个Controller提供给consul做健康检查
@RestController
@RequestMapping("/")
public class HealthController {
@GetMapping("/actuator/health")
public String health(){
return "server health";
}
}
10.1.2、重启server-member服务,重新访问consul页面
此时,健康检查通过,表示服务节点可用
10.2、重新指定健康检查路径
discovery:
# 重新指定健康检查机制的接口
health-check-path: /healthcheck
# 检查时间间隔
health-check-interval: 5s
10.2.1、修改server-member服务的application.yml
server:
port: 9081
spring:
application:
name: server-member
cloud:
# zookeeper:
# #配置连接注册中心地址
# connect-string: localhost:2181
consul:
host: localhost
port: 8500
discovery:
# 重新指定健康检查机制的接口
health-check-path: /healthcheck
# 检查时间
health-check-interval: 5s
10.2.2、修改HealthController接口,使用application.yml配置文件配置的路径
@RestController
@RequestMapping("/")
public class HealthController {
@GetMapping("/healthcheck")
public String health(){
return "server health";
}
}
10.2.3、重启server-member服务,重新访问consul页面
可以看到健康检查接口已经变成了我们配置文件自定义的路径 http://DESKTOP-I144RP0:9081/healthcheck
11、同个服务启动多个实例展示
以server-member服务为例,分别以9081、9082、9083端口启动三个服务实例、访问consul页面
可以看到server-member已经注册到consul注册中心中,并表明有3个实例
点击server-member查看各个服务实例的详情