使用場景
封裝Netflix Eureka,通過SpringBoot的自動配置實現。
Eureka服務端與客戶端均採用java語言編寫,所以Eureka主要使用於java實現的分佈式系統,或者與JVM兼容語言所構建的系統。
服務註冊
服務註冊中心:微服務向註冊中心發送REST請求,登記自己的主機、端口號、通信協議等元數據;存儲在一個雙層結構Map中,其中第一層是微服務名,第二次是具體服務的實例名;
指定服務註冊中心地址:
eureka.client.serviceUrl.defaultZone=xxxx
服務發現:
客戶端調用服務註冊中心的所有服務實例清單,從清單中以某種負載均衡策略取出一個服務實例進行調用;
實際中,服務實例清單通過緩存、剔除等機制實現客戶端對服務的調用,服務清單30秒更新一次;
允許服務清單獲取服務名:
eureka.client.fetch.registry=true
設置更新服務清單間隔時間
eureka.client.registry.fetch.interval.seconds=30
心跳檢查:
微服務每30秒向註冊中心發送一次Renew操作,以續約
eureka.instance.leaseRenewalIntervalInSeconds=30
註冊中心90秒沒收到Renew操作,則剔除相應的微服務
eureka.instance.leaseExpirationDurationInSeconds=90