1.為什么使用Eureka集群郎楼?
還是借用這一張圖來說明吧:
在這個圖中鸽素,展示的是eureka集群的工作流程,而之所以進(jìn)行eureka集群的搭建犬庇,在于在我們平時的生產(chǎn)環(huán)境中,很難保證單節(jié)點的eureka服務(wù)能提供百分百不間斷的服務(wù)侨嘀,如果eureka無響應(yīng)了臭挽,整個項目應(yīng)用都會出現(xiàn)問題,因此要保證eureka隨時都能提供服務(wù)的情況下咬腕,最好的方式就是采用eureka的集群模式欢峰,也就是搭建eureka的高可用,在eureka的集群模式下,多個eureka server之間可以同步注冊服務(wù)赤赊,因此闯狱,在一個eureka宕掉的情況下,仍然可以提供服務(wù)注冊和服務(wù)發(fā)現(xiàn)的能力抛计,從而達(dá)到注冊中心的高可用哄孤。
2.Eureka需要的Jar包
<dependencies>
<!--eureka服務(wù)端的包-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--eureka服務(wù)端認(rèn)證需要的包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
<!--springboot的父類-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<!--springcloud的包-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3.Eureka的配置
##Eureka服務(wù)端安全管理
security:
basic:
enabled: true
user:
name: user
password: password
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
##健康檢查
healthcheck:
enable: true
##單一Eureka服務(wù)不進(jìn)行注冊配置
registerWithEureka: false
fetchRegistry: false
##進(jìn)行注冊的路徑因為進(jìn)行了安全管理所以需要賬號密碼認(rèn)證
serviceUrl:
defaultZone: http://user:password@localhost:8761/eureka/
3.Eureka的啟動類
//只需在springboot啟動類加@EnableEurekaServer
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}