SpringCloud注冊中心Eureka
發(fā)布時間:2021-11-23 點擊數:646
CAP理論#
Zookeeper保證CP-
ZooKeeper的leader節(jié)點掛掉之后會重新進行l(wèi)eader選舉,選舉期間整個ZooKeeper集群都是不可用的;先選舉leader保證強一致性之后,不能保證可用性。
Eureka保證AP-
Eureka優(yōu)先保證可用性,Eureka各個節(jié)點是平等的,某幾個節(jié)點掛掉不會影響正常節(jié)點的工作,剩余的節(jié)點依然可以提供注冊和查詢服務。而Eureka的客戶端在向某個Eureka注冊或時如果發(fā)現連接失敗,則會自動切換至其它節(jié)點,只要有一臺Eureka還在,就能保證注冊服務可用(保證可用性),只不過查到的信息可能不是最新的(不保證強一致性)。
注冊中心搭建#
Eureka是一個服務治理組件,它主要包括服務注冊和服務發(fā)現,主要用來搭建服務注冊中心。
Eureka是一個基于REST的服務,用來定位服務,進行中間層服務器的負載均衡和故障轉移;
(1)創(chuàng)建一個SpringBoot項目
(2)pom引入注冊中心依賴包
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> <version>2.2.0.RELEASE</version> </dependency>
(3)啟動類加上注解@EnableEurekaServer
@EnableEurekaServer public class Application { public static void main(String[] args) { new SpringApplicationBuilder(Application.class)
.bannerMode(Banner.Mode.LOG)
.build()
.run(args);
}
}
(4)配置文件application.properties
server.port=8094 #當前IP eureka.instance.hostname=ip1 #清理服務頻次 eureka.instance.lease-renewal-interval-in-seconds=2 eureka.instance.lease-expiration-duration-in-seconds=10 #注冊策略 eureka.server.enable-self-preservation=false eureka.client.register-with-eureka=false eureka.client.fetch-registry=false #注冊地址:集群配置不配當前ip eureka.client.service-url.defaultZone=http://ip2:${server.port}/eureka/
