📜  将单个服务的多个实例注册到 eureka (1)

📅  最后修改于: 2023-12-03 15:25:16.984000             🧑  作者: Mango

将单个服务的多个实例注册到 Eureka

Eureka 是 Netflix 开源的一个基于 RESTful 的服务治理解决方案,主要功能包括服务注册与发现。在微服务架构中,每个服务通常会有多个实例,为了对外提供更好的可用性,需要将这些实例注册到 Eureka 服务器中。本文将介绍如何将单个服务的多个实例注册到 Eureka 中。

1. 引入 Eureka 客户端依赖

在 pom.xml 文件中添加以下依赖:

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2. 配置 Eureka 客户端

在应用的配置文件中,配置 Eureka 服务端的地址和端口号:

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
3. 配置应用信息

在应用的配置文件中,配置应用的信息,包括应用名称、端口号等:

spring:
  application:
    name: demo-service
server:
  port: 8080
4. 配置应用实例信息

在应用的配置文件中,配置应用的实例信息,包括应用实例的主机名、IP 地址等:

eureka:
  instance:
    hostname: localhost
    prefer-ip-address: true
5. 配置应用实例数量

在应用的配置文件中,配置应用启动的实例数量:

eureka:
  instance:
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}:${spring.application.name}:${spring.application.instance_id:${random.value}}
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761/eureka}
    instance-info-replication-interval-seconds: 30
    lease-renewal-interval-in-seconds: 10
    lease-expiration-duration-in-seconds: 30
    instance-count: 3

以上配置中的 instance-count 参数表示应用启动的实例数量。

6. 启动应用实例

在启动应用实例时,指定不同的 server.port 参数启动多个实例。例如,启动 3 个实例:

java -jar demo-service.jar --server.port=8080
java -jar demo-service.jar --server.port=8081
java -jar demo-service.jar --server.port=8082
7. 查看注册情况

在浏览器访问 Eureka 服务器中的注册中心页面,可以看到已经注册的服务实例信息:

eureka-registry.png

结论

本文介绍了如何将单个服务的多个实例注册到 Eureka 中,包括依赖引入、Eureka 客户端配置、应用信息配置、应用实例信息配置、应用实例数量配置以及启动应用实例等步骤。通过注册到 Eureka 中,可以实现服务的高可用性及负载均衡。