官网: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

京公网安备 11010502036488号