SpingCloud—— Consul 服务注册与发现

目录

1. Consul

1.1 功能

1.2 Consul CMD 命令

2. 服务提供者

2.1 加 pom

2.2  写 YML

2.3 启动类

2.4 controller

2.5 测试验证

3. 服务消费者

3.1 加 pom

3.2  写 YML

3.3 启动类

3.4 业务类

3.5 测试验证

1. Consul

1.1 功能

服务发现:提供 HTTP 和 DNS 两种发现方式

健康监测:支持多种协议, HTTP、TCP、Docker、Shell脚本定制化

K-V 存储:key , Value 的存储方式

多数据中心:Consul 支持多数据中心

可视化Web界面

1.2 Consul CMD 命令

consul --version: 查看版本信息

consul agent -dev:启动 consul

http://localhost:8500:查看

SpingCloud—— Consul 服务注册与发现_第1张图片

2. 服务提供者

新建 module :cloud-providerconsul-payment8006

2.1 加 pom


    
        org.springframework.cloud
        spring-cloud-starter-consul-discovery
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-actuator
    

2.2  写 YML

server:
  port: 8006
spring:
  application:
    name: consul-provider-payment
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}

2.3 启动类

@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8006 {
    public static void main(String[] args){
        SpringApplication.run(PaymentMain8006.class,args);
    }
}

2.4 controller

@RestController
public class PaymentController {

    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/consul")
    public String paymentConsul(){
        return "springcloud with consul: "+serverPort+"\t"+ UUID.randomUUID().toString();
    }
}

2.5 测试验证

Consul :

SpingCloud—— Consul 服务注册与发现_第2张图片

访问 controller:

SpingCloud—— Consul 服务注册与发现_第3张图片

 

3. 服务消费者

新建 module:cloud-consumerconsul-order80

3.1 加 pom


    
        org.springframework.cloud
        spring-cloud-starter-consul-discovery
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-actuator
    

3.2  写 YML

server:
  port: 80
spring:
  application:
    name: consul-consumer-payment
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}

3.3 启动类

@SpringBootApplication
@EnableDiscoveryClient
public class OrderConsulMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderConsulMain80.class,args);
    }
}

3.4 业务类

a. 配置 bean

@Configuration
public class ApplicationContextConfig {
    @LoadBalanced
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

b. controller

@RestController
public class OrderConsulController  {
    public static final String INVOKE_URL = "http://consul-provider-payment";

    @Autowired
    private RestTemplate restTemplate;
    @GetMapping("/consumer/payment/consul")
    public String payment(){
        String result = restTemplate.getForObject(INVOKE_URL+"/payment/consul",String.class);
        return result;
    }
}

3.5 测试验证

SpingCloud—— Consul 服务注册与发现_第4张图片

SpingCloud—— Consul 服务注册与发现_第5张图片

你可能感兴趣的:(SpringCloud)