Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Consul服务注册中心

简介:consul基于go语言进行开发服务注册中心,轻量级服务注册中心(goole)

作用:管理微服务中所有服务注册、发现、管理服务元数据信息存储(服务名,地址列表)以及心跳健康检查

Consul注册中心下载

首先去官网下载

解压文件压(目录最好不要有中文)

启动注册中心

1、首先在consul 打开cmd

运行命令

1
consul agent -dev

mac用户 可以通过brew 进行安装

直接在终端运行命令即可

2、访问consul UI界面

默认端口为8500,直接访问这个端口就可以

image-20210803172106817

SpringCloud配置Consul

还是同配置Eureka一样,首先我们创建一个maven子项目,继承父项目的依赖,然后将这个项目配置为SpringBoot服务(添加web依赖,添加配置文件,添加启动类),在这里就不详细说明了。

成为SpringBoot项目之后,就是简单的SpringBoot项目整合流程了

1、添加依赖

1
2
3
4
5
<!--        引入consul依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

2、修改配置文件

1
2
3
4
5
6
7
8
9
server:
port: 8082
spring:
application:
name: CONSULCLIENT
cloud:
consul:
host: 127.0.0.1
port: 8500

3、添加注解

这里要注意,这里的注解不是像Eureka一样类似的注解@EnableEurekaClient,因为注册中心有很多,Spring为了方便适配多种注册中心,除了Eureka这种早期的注册中心之外,其余都使用@EnableDiscoveryClicent注解。

它会根据你引入的注册中心依赖来确定你用的是哪个注册中心。

1
2
3
4
5
6
7
8
9
10
11
/**
* @author bestrookie
* @date 2021/8/3 6:00 下午
*/
@EnableDiscoveryClient
@SpringBootApplication
public class ConsulClientApplication {
public static void main(String[] args) {
SpringApplication.run(ConsulClientApplication.class,args);
}
}

4、然后启动服务,进入注册中心查看是否可用

image-20210804103203547

然后发现,虽然有我们服务的名字,但是显示叉号,显示不可用

原因:consul server检测所有客户端心跳,但是发送心跳时client必须给予响应才能使该服务正常使用。在现有客户端中我们并没有引入健康检查依赖,所以导致健康检查始终不通过,导致服务不能使用,

解决:引入健康检查依赖

1
2
3
4
5
<!--        引入健康检查依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

然后再次运行:

image-20210804135304388

成功开启服务

评论