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

京公网安备 11010502036488号