Spring Cloud Commons 普通抽象

諸如服務發現,負載平衡和斷路器之類的模式適用於所有Spring Cloud客戶端可以獨立於實現(例如通過Eureka或Consul發現)的消耗的共同抽象層。
@EnableDiscoveryClient

Commons提供@EnableDiscoveryClient註釋。這通過META-INF/spring.factories查找DiscoveryClient接口的實現。Discovery Client的實現將在org.springframework.cloud.client.discovery.EnableDiscoveryClient鍵下的spring.factories中添加一個配置類。DiscoveryClient實現的示例是Spring Cloud Netflix Eureka,Spring Cloud Consul發現和Spring Cloud Zookeeper發現。

默認情況下,DiscoveryClient的實現將使用遠程發現服務器自動註冊本地Spring Boot服務器。可以通過在@EnableDiscoveryClient中設置autoRegister=false來禁用此功能。
ServiceRegistry

Commons現在提供了一個ServiceRegistry接口,它提供了諸如register(Registration)和deregister(Registration)之類的方法,允許您提供定製的註冊服務。Registration是一個標記界面。

@Configuration
@EnableDiscoveryClient(autoRegister=false)
public class MyConfiguration {
    private ServiceRegistry registry;
 
    public MyConfiguration(ServiceRegistry registry) {
        this.registry = registry;
    }
 
    // called via some external process, such as an event or a custom actuator endpoint
    public void register() {
        Registration registration = constructRegistration();
        this.registry.register(registration);
    }
}

每個ServiceRegistry實現都有自己的Registry實現。

服務部門自動註冊

默認情況下,ServiceRegistry實現將自動註冊正在運行的服務。要禁用該行爲,有兩種方法。您可以設置@EnableDiscoveryClient(autoRegister=false)永久禁用自動註冊。您還可以設置spring.cloud.service-registry.auto-registration.enabled=false以通過配置禁用該行爲。

服務註冊執行器端點

Commons提供/service-registry致動器端點。該端點依賴於Spring應用程序上下文中的Registration bean。通過GET調用/service-registry/instance-status將返回Registration的狀態。具有String主體的同一端點的POST將將當前Registration的狀態更改爲新值。請參閱您正在使用的ServiceRegistry實現的文檔,以獲取更新狀態的允許值和爲狀態獲取的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章