官网:Consul官网
下载地址:Consul下载地址
中文文档:Consul中文文档
特点
- 服务发现
提供HTTP和DNS两种发现方式
- 健康监测
支持多种协议,HTTP、TCP、Docker、Shell脚本定制化
- KV存储
key , Value的存储方式
- 多数据中心
Consul支持多数据中心
- 可视化Web界面
启动
在命令窗口consul agent -dev
启动成功后浏览器http://127.0.0.1:8500进入管理页面
配置
- maven
<!-- 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>
- yml
server:
port: 8006
spring:
application:
name: consul-provider-payment
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${
spring.application.name}
- springboot启动类添加@EnableDiscoveryClient注解
消费端配置和服务提供端配置类似
只需要添加远程调用服务和负载均衡
@Configuration
public class ApplicationContextConfig {
@LoadBalanced //开启负载均衡
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}
使用:
@RestController
@Slf4j //可以省略
public class OrderConsulController {
public static final String INVOME_URL = "http://consul-provider-payment";
@Resource
private RestTemplate restTemplate;
@GetMapping("/consumer/payment/consul")
public String payment (){
String result = restTemplate.getForObject(INVOME_URL+"/payment/consul",String.class);
return result;
}
}
服务都已经注册到 consul