首先,由于是在本地构建 eurekacolony 所以要在本地修改本地映射文件。
文件地址:
Windows环境下:打开

C:\Windows\System32\drivers\etc 

文件夹
Mac环境下:

vim/etc/hosts 

文件夹

进行编辑修改。

127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3

Eureka Server 的 POM 文件中 添加依赖:

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

配置 application.yml 配置文件。
添加如下代码:


spring:
  application:
    name: eureka-server
  security:
    user:
      name: ioenn
      password: ioenn

---
spring:
  profiles: peer1
server:
  port: 8885
eureka:
  instance:
    hostname: peer1
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@peer1:8885/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@peer2:8886/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@peer3:8887/eureka/
    registerWithEureka: true
    fetchRegistry: true

---
spring:
  profiles: peer2
server:
  port: 8886
eureka:
  instance:
    hostname: peer2
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@peer2:8886/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@peer1:8885/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@peer3:8887/eureka/
    registerWithEureka: true
    fetchRegistry: true
---
spring:
  profiles: peer3
server:
  port: 8887
eureka:
  instance:
    hostname: peer3
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@peer3:8887/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@peer1:8885/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@peer2:8886/eureka/
    registerWithEureka: true
    fetchRegistry: true

注意配置时的
点击 DS Replicas 不显示主页 报 404 问题:
这个 ds replicas 下的东西,是个终端,不是图形页面 GUI ,点他没用,不要乱点,报 404 是正常的。
图片说明

启动类添加代码:

// 关闭csrf 。关闭代码:
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
        // Spring Security 默认开启了所有 CSRF 攻击防御,需要禁用 /eureka 的防御
        httpSecurity.csrf().ignoringAntMatchers("/eureka/**");

        super.configure(httpSecurity);
    }
}

方法一: 启动 JAR 的方式启动 Eureka Server
使用 Maven 插件给 EurekacServer 打jar包 。
注意:
打包前最好 clean 一下,然后 package
要是新建的项目没改过 Test类,打包时,有时会报错 Test 类测试错误。
然后让你去你电脑上项目的路径里 target\surefire-reports 文件夹下查看错误日志。
error:一般是 There was a problem with the instance info replicator 。
我的解决方法是:
测试类的class上边加一行
@RunWith(SpringRunner.class)
给测试方法前都加上 public
代码如下:


@RunWith(SpringRunner.class)
@SpringBootTest
    public class EurekaServerApplicationTests {
        @Test
        public void contextLoads() {
        }
    }

也可以 点 IDEA 上 Maven 控制台上,的这个按钮。
图片说明
打包时出现
BUILD SUCCESS 时 证明打包成功,记住 jar 包路径。
在 jar 包路径下,打开 cmd
启动项目:
输入命令:
注意:每个 cmd 窗口启动一个。

java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3

启动成功后
查看集群是否正常:

http://peer1:8885/
http://peer2:8886/
http://peer2:8887/

方法二:

一共要有4个文件:
application.yml
application-peer1.yml
application-peer2.yml
application-peer3.yml
文件 application.yml 配置:

spring:
  application:
    name: eureka-server

文件 application-peer1.yml 配置:

spring:
  profiles: peer1
  application:
    name: eureka-server
server:
  port: 8885
eureka:
  instance:
    hostname: peer1
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: http://peer1:8885/eureka/,http://peer2:8886/eureka/,http://peer3:8887/eureka/
    registerWithEureka: true
    fetchRegistry: true

文件 application-peer2.yml 配置:

spring:
  profiles: peer2
  application:
    name: eureka-server
server:
  port: 8886
eureka:
  instance:
    hostname: peer2
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: http://peer2:8886/eureka/,http://peer1:8885/eureka/,http://peer3:8887/eureka/
    registerWithEureka: true
    fetchRegistry: true

文件 application-peer3.yml 配置:

spring:
  profiles: peer3
  application:
    name: eureka-server
server:
  port: 8887
eureka:
  instance:
    hostname: peer3
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: http://peer3:8887/eureka/,http://peer1:8885/eureka/,http://peer2:8886/eureka/
    registerWithEureka: true
    fetchRegistry: true

分别在idea中启动:
步骤一:
图片说明
步骤二:
图片说明

启动成功后
查看集群是否正常:

http://peer1:8885/
http://peer2:8886/
http://peer2:8887/

然后启动一个 客户端微服务,看看是否都注册上了。
成功图:
图 1 :
图片说明

图 2 :
图片说明

完!
转载请附原地址 @
……………………………………………………………………………………………………………………………………