项目代码
生成项目
通过 start.spring.io 生成项目代码,添加 web
, actuator
, eureka server
依赖。
解压源码包,在 idea 中打开项目。
在 application.properties
中添加以下内容:
1 | spring.application.name=spring-cloud-eureka-server |
创建不同实例配置
新建 application-server1.properties
,application-server2.properties
,application-server3.properties
三个文件,用于配置 3 个 eureka server 实例。
application-server1.properties
内容如下:
1 | spring.profiles=server1 |
application-server2.properties
内容如下:
1 | spring.profiles=server2 |
application-server3.properties
内容如下:
1 | spring.profiles=server3 |
激活注册服务器
主启动类添加 @EnableEurekaServer
来激活注册服务器。
1 | package ltd.pinshi.springcloudeurekaserver; |
配置 hosts
由于 3 个实例都运行在一台机器上,需要在 hosts 文件上做下配置。Mac 下为 /etc/hosts
,在结尾添加以下映射,保存退出。
1 | 127.0.0.1 server1 |
启动 Eureka Server 实例
通过 idea 运行
在 idea 右上角 Edit Configurations… 新建 3 个运行配置。在 Program arguments 中设置 --spring.profiles.active=server1
相应的启动场景。
点击右上角 Run 来启动实例。
通过 jar 运行
进入项目根目录,执行 mvn clean package
。在 target 子目录下会生成 spring-cloud-eureka-server-0.0.1-SNAPSHOT.jar
文件。
通过以下命令分别启动 3 个实例:
1 | java -jar spring-cloud-eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=server1 |
查看实例
浏览器输入 http://localhost:8761,内容如下:
http://localhost:8762,http://localhost:8763 内容相似。
需要注意的是 DS Replicas 部分的内容。
通过 Instances currently registered with Eureka 可以看到注册了 3 个实例。
General Info 中的 registered-replicas
,unavailable-replicas
,available-replicas
可以通过停止某个实例观察变化。
扩展问题
在 application.properties
中
1 | 表示是否注册自身到eureka服务器,默认为 true |
大家可以取消这两个选项的注释,查看浏览器的内容显示。