首先,由于是在本地构建 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 :
完!
转载请附原地址 @
……………………………………………………………………………………………………………………………………