在实际的项目中,可能有几十个或者几百个的微服务实例,这时Eureka Server承担了非常高的负载。由于Eureka Server在微服务中有着重要的作用,所有需要对Eureka Server进行高可用集群。
在这里是在原本单节点的Eureka实例上构建的
1.修改本地的hosts文件
Windows系统在C:\Windows\System32\drivers\etc目录下,mac系统的电脑通过终端 vim/etc/hosts进行编辑修改。
添加如下内容
127.0.0.1 server1
127.0.0.1 server2
127.0.0.1 server3
2.修改application.yml文件
spring:
application:
name: homepage-eureka
profiles: server1
server:
port: 8000
eureka:
instance:
hostname: server1
prefer-ip-address: false
client:
service-url:
defaultZone: http://server2:8001/eureka/,http://server3:8002/eureka/
---
spring:
application:
name: homepage-eureka
profiles: server2
server:
port: 8001
eureka:
instance:
hostname: server2
prefer-ip-address: false
client:
service-url:
defaultZone: http://server1:8000/eureka/,http://server3:8002/eureka/
---
spring:
application:
name: homepage-eureka
profiles: server3
server:
port: 8002
eureka:
instance:
hostname: server3
prefer-ip-address: false
client:
service-url:
defaultZone: http://server1:8000/eureka/,http://server2:8001/eureka/
在上述代码中,定义了3个profile,它们的hostname分别为server1,server2,server3,在实际开发中,可能是具体的服务的IP地址。端口号分别为8000,8001,8002。
3.编译打包
通过Maven命令 :mvn clean package -Dmaven.test.skip=true -U (跳过单元测试),编译成功后,在工程的目录下会有一个target文件夹,进入该文件夹,可以发现生成了一个 homepage-eureka-1.0-SNAPSHOT.jar的jar包。
4.启动工程
cd到target文件夹下,然后通过java -jar的方式启动工程,并通过 spring.profile.active指定启动的配置文件。在本案例中需要启动三个Eureka Server实例。可以在idea的terminal终端启动,也可以通过命令窗口启动,开启3个终端窗口。启动实例的命令如下:
java -jar homepage-eureka-1.0-SNAPSHOT.jar --spring.profiles.active=server1
启动server2和server3分别修改spring.profiles.active=server2,spring.profiles.active=server3.
5.验证
启动成功后,在浏览器中访问http://localhost:8000/,会发现DS Replicas选项中显示了server2和server3,界面如下图所示。
同样,访问http://localhost:8001/,会发现已经注册了server1和server3。