spring cloud Eureka注册中心集群搭建

1.创建springcloud-eureka maven项目

 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!-- 父项目yilai -->
    <parent>
        <groupId>com.pupeiyuan.springcloud</groupId>
        <artifactId>spring-Cloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>springcloud-eureka</artifactId>
    <packaging>jar</packaging>
    <dependencies>
        <!-- eureka server 依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>
</project>

 

2.启动类EurekaServerApplication.java

package com.spring.pupeiyuan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

    public static void main(String[] args) {
         SpringApplication.run(EurekaServerApplication.class,args);
    }
}

 

3.创建application-peer1.properties向peer2注册中心注册,把peer1注册中心当做一个client注册上去

application-peer1.properties

spring.application.name=spring-cloud-eureka
server.port=8000
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://${security.user.name}:${security.user.password}@peer2:8001/eureka/
eureka.environment=eureka-test1
eureka.datacenter=eureka-data1
eureka.server.enable-self-preservation=false
eureka.server.eviction-interval-timer-in-ms=10000

security.basic.enabled=true
security.user.name=root
security.user.password=123456

创建application-peer2.properties向peer1注册中心注册,把peer2注册中心当做一个client注册上去

application-peer2.properties

spring.application.name=spring-cloud-eureka
server.port=8001
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://${security.user.name}:${security.user.password}@peer1:8000/eureka/
eureka.environment=eureka-test2
eureka.datacenter=eureka-data2
eureka.server.enable-self-preservation=false
eureka.server.eviction-interval-timer-in-ms=4000

security.basic.enabled=true
security.user.name=root
security.user.password=123456

创建application.properties指定启动时应用的配置文件

application.properties

spring.profiles.active=peer2

 

4.目前版本加入安全验证spring-boot-starter-security时,会发生注册中心无法注册的问题,解决如下

添加WebSecurityConfig.java配置文件到项目中,关闭csrf

WebSecurityConfig.java

package com.spring.pupeiyuan.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER);
        http.csrf().disable(); // 关闭csrf
        http.authorizeRequests().anyRequest().authenticated().and().httpBasic(); // 开启认证
    }
}

结果演示

 

 

posted @ 2018-12-13 16:48  十月围城小童鞋  阅读(292)  评论(0编辑  收藏  举报