Eureka服務註冊與發現
阿新 • • 發佈:2019-01-20
sco zookeeper 健康 寧可 spa 分布 tar 關系型數據庫 tag
註冊中心的建立
1、增加pom文件; 2、修改yml配置文件; 3、添加@EnableEurekaServer註解; 4、啟動進入服務註冊頁面。微服務註冊到註冊中心
1、添加yml配置,尋找註冊中心地址 2、添加@EnableEurekaClient註解在啟動類; 3、啟動服務註冊頁面,新增了一個註冊的微服務。配置修改:
<wiz_code_mirror>Eureka:
instance:
instance-id: microservicecloud-8081 //主機映射名稱的修改
prefer-id-address: true //訪問路徑可以顯示ip
//info內容構建,替換error頁面,添加maven的build標簽配置後,增加以下配置。
info:
app.name: microservice
company.name: sun
build.artifact.id: $project.artifactId$
build.version: $project.version$
自我保護機制:
好死不如賴活著:寧可保留錯誤的服務註冊信息,也不盲目註銷健康的服務實例。 當心跳數重新恢復到閥值以上時,該節點自動退出自我保護機制。 <wiz_code_mirror>eureka:
server:
enable-self-preservation: false//禁用自我保護機制,一般不使用
服務發現:
1、在啟動類上新增註解@EnableDiscoveryClient 2、註入並訪問發現的服務 <wiz_code_mirror>@AutoWired
private DiscoveryClient client;
@GetMapping(value = "/dept/discovery")
public Object discovery(){
List<String> list = client.getServices();
List<ServiceInstance> srvList = client.getInstances("MICROSERVICE");
}
Eureka集群:
1、新增2個Eureka模塊,修改hosts配置文件; 2、修改yml配置文件 <wiz_code_mirror>eureka:
client:
service-url:
#defaultZone: http://localhost:7001/eureka //單機版
#defaultZone:http://eureka7002.com:7002/eureka/,http://eureka7002.com:7002/eureka/ #集群版
3、訪問任意註冊中心,在Ds Replicas 下新增了另外兩個集群節點。
Eureka和ZooKeeper比較:
關系型數據庫:事務實現了ACID理論; 非關系型數據庫:分布式集群系統只能保證CAP原則的兩項。 1、CP原則:Zookeeper實現,一臺宕機後,會再次尋找leader,這個時間段無法達到A原則; 2、CA原則:Eureka實現,平等集群,一臺宕機後,立即轉發到另一臺上。 自我保護機制保證高可用,在沒心跳的情況下不會停止過期服務。 一般配合BASE原則使用,保證最終的一致性即可。<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false">
Eureka服務註冊與發現