本文通過兩個eureka相互注冊實現注冊中心的高可用,同時為注冊中心配置認證登錄。
- 需要用到的maven配置
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
- 第一個服務配置:myEureka
server: port: 9998 #服務注冊中心端口號 eureka: instance: hostname: localhost #服務注冊中心IP地址 client: registerWithEureka: true #是否向服務注冊中心注冊自己 fetchRegistry: true #是否檢索服務 serviceUrl: #服務注冊中心的配置內容,指定服務注冊中心的位置 defaultZone: http://wangzhzh:wzz123@localhost:9999/eureka/ spring: application: name: eureka-server # 安全認證的配置 security: user: name: wangzhzh # 用戶名 password: wzz123 # 用戶密碼
- 第二個服務配置:myEureka2
server: port: 9999 #服務注冊中心端口號 eureka: instance: hostname: localhost #服務注冊中心IP地址 client: registerWithEureka: true #是否向服務注冊中心注冊自己 fetchRegistry: true #是否檢索服務 serviceUrl: #服務注冊中心的配置內容,指定服務注冊中心的位置 defaultZone: http://wangzhzh:wzz123@localhost:9998/eureka/ spring: application: name: eureka-server2 # 安全認證的配置 security: user: name: wangzhzh # 用戶名 password: wzz123 # 用戶密碼
- 開啟eureka服務
注意:我所使用的事spring cloud 2.0以上的版本,還需要在兩個服務加配置文件。
Spring Cloud 2.0 以上的security默認啟用了csrf檢驗,要在eureka server端配置security的csrf檢驗為false。
/** * @Description * @Author wzz * @Date 2019/10/10 17:22 */ @EnableWebSecurity public class SecurityConf extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { super.configure(http); http.csrf().disable(); } }