Eureka Server可以通过运行多个实例并通过相互注册的方式实现高可用性的部署。Eureka Server实例会彼此通过增量同步的方式同步信息,确保节点数据之间的一致性。
配置hosts
由于我这里部署到同一个电脑上,因此需要配置hosts,以便进行服务之间的区分。
win电脑hosts文件位于:C:\Windows\System32\drivers\etc\hosts
Mac及Linux电脑hosts文件位于:/etc/hosts
在hosts文件末尾增加以下内容:
C:\Windows\System32\drivers\etc
配置服务提供者
分别创建两个Spring Boot应用,分别为microservice-discovery-eureka
、microservice-discovery-eureka-ha
,代表两个服务提供者工程。
添加依赖
两个工程,同时添加以下依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
修改启动类
两个工程的启动类,分别添加@EnableEurekaServer
注解。
@SpringBootApplication
@EnableEurekaServer
public class MicroserviceDiscoveryEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(MicroserviceDiscoveryEurekaApplication.class, args);
}
}
microservice-discovery-eureka
配置文件如下
spring:
application:
name: microservice-discovery-eureka
server:
port: 8761
eureka:
instance:
hostname: peer1
appname: microservice-discovery-eureka
prefer-ip-address: false
client:
serviceUrl:
defaultZone: http://peer2:8762/eureka
# false表示不向注册中心注册自己
register-with-eureka: true
# false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: true
microservice-discovery-eureka-ha
配置文件如下
spring:
application:
name: microservice-discovery-eureka
server:
port: 8762
eureka:
instance:
hostname: peer2
appname: microservice-discovery-eureka
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka
# false表示不向注册中心注册自己
register-with-eureka: true
# false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: true
可以看到,两个工程通过相互注册的方式,实现集群。
配置文件,需要注意以下内容
[alt type="success"]hostname需要不同[/alt]
[alt type="info"]appname必须保持一致[/alt]
[alt type="warning"]defaultZone需要使用我们配置的IP映射,而不是使用IP[/alt]
评论 (0)