云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。
Eureka实行集群部署,更具高可用性。
创建Eureka Server工程
通过Intellij IDEA创建SpringBoot工程。New Project ->Spring Initializr -> 填写name和group ->勾选Eureka Server ...完成之后,会发现pom.xml存在这样的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
编辑application.yml
这里将要搭建3个节点组成的服务中心
其实,这是一个默认行为,所以只需要为对方添加上有效的serviceUrl即可。具体配置如下:
---
spring:
application:
name: eureka-servers
profiles: peer1
server:
port: 8000
eureka:
instance:
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer2:7999/eureka/,http://peer3:7998/eureka/
---
spring:
application:
name: eureka-servers
profiles: peer2
server:
port: 7999
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer3:7998/eureka/
---
spring:
application:
name: eureka-servers
profiles: peer3
server:
port: 7998
eureka:
instance:
hostname: peer3
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer2:7999/eureka/
这里面需要修改/etc/hosts,添加peer1、2、3的解析。
运行
这里要运行3个实例。通过IDEA运行需要注意下面两点:
- 反选Signle instance only,使得可以运行多个实例(对于同一个工程)
-
Active Profiles,可以指定启动某个配置的实例