1. 程式人生 > >Spring Cloud Consul—服務發現與Consul

Spring Cloud Consul—服務發現與Consul

列表 當前 host static 實例 cati edi 上下文 ota

服務發現是基於微服務架構的關鍵原則之一。嘗試配置每個客戶端或某種形式的約定可能非常困難,可以非常脆弱。Consul通過HTTP API和DNS提供服務發現服務。Spring Cloud Consul利用HTTP API進行服務註冊和發現。這不會阻止非Spring Cloud應用程序利用DNS界面。Consul代理服務器在通過八卦協議進行通信的集群中運行,並使用Raft協議協議。

如何激活

要激活Consul服務發現,請使用組org.springframework.cloud和artifact id spring-cloud-starter-consul-discovery的啟動器。有關使用當前的Spring Cloud發布列表設置構建系統的詳細信息,請參閱Spring Cloud項目頁面。

註冊Consul

當客戶端註冊Consul時,它提供有關自身的元數據,如主機和端口,ID,名稱和標簽。默認情況下會創建一個HTTP 檢查,每隔10秒,Consul命中/health端點。如果健康檢查失敗,則服務實例被標記為關鍵。

示例Consul客戶端:


@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class Application {

    @RequestMapping("/")
    public String home() {
        return "Hello world";
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }

}

(即完全正常的Spring Boot應用程序)。如果Consul客戶端位於localhost:8500以外的位置,則需要配置來定位客戶端。例:

application.yml

spring:
  cloud:
    consul:
      host: localhost
      port: 8500

警告
如果您使用Spring Cloud Consul Config,上述值將需要放在bootstrap.yml而不是application.yml中。
來自Environment的默認服務名稱,實例ID和端口分別為${spring.application.name},Spring上下文ID和${server.port}。

@EnableDiscoveryClient將應用程序設為Consul“服務”(即註冊自己)和“客戶端”(即可以查詢Consul查找其他服務)。

Spring Cloud Consul—服務發現與Consul