Spring Cloud Consul—服務發現與Consul
阿新 • • 發佈:2018-02-06
列表 當前 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