一、简介
Consul用于微服务的注册和发现,由Go语言编写,提供HTTP和DNS两种服务发现方式,支持HTTP、TCP、Docker、Shell脚本定制化,支持多数据中心,有可视化的Web界面。
二、安装
拉镜像,当前最新1.9.3,Consul 官网
docker pull consul:1.9.3
运行得到容器 (默认是以开发模式启动,数据保存在内存中,持久化需要通过数据卷映射到宿主机)
docker run -d --name=sc-consul -p 8500:8500 -e CONSUL_BIND_INTERFACE=eth0 consul
访问页面查看Consul
三、微服务注册
pom依赖,引入Consul
1
2
3
4
5
6
7
8
9
10<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-consul-discovery -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>yaml配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15server:
port: 8006
spring:
application:
name: 服务名
cloud:
consul:
host: Consul 服务器IP
port: 8500
discovery:
service-name: ${spring.application.name}
# 为了Consul可以进行健康检测
heartbeat:
enabled: true启动类添加服务发现注解
@EnableDiscoveryClient
四、调用服务注册
pom依赖,引入Consul
1
2
3
4
5
6
7
8
9
10<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-consul-discovery -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>yaml配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16server:
port: 调用服务端口
spring:
application:
name: 服务名
cloud:
consul:
host: consul 服务IP
port: 8500
discovery:
service-name: ${spring.application.name}
# 为了Consul可以进行健康检测
heartbeat:
enabled: trueRestTemplate配置类
1
2
3
4
5
6
7
8
9
public class ApplicationContextConfig {
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}调用服务时直接访问 http://微服务的注册名
...
...
00:00
00:00
本文为作者原创文章,未经作者允许不得转载。