2025年Eureka集群环境搭建

Eureka集群环境搭建前言 Eureka 已经停止更新了 在新的项目中 不推荐使用 通过对周阳老师视频的学习 本篇文章主要是简单介绍下 Eureka 以及如何搭建集群环境的 Eureka 让大家对 Eureka 有个初步的了解 1 什么是 Eureka Eureka 是 Netflix 开发的 一个基于 REST 服务的 服务注册与发现的组件 以实现中间层服务器的负载平衡和故障转移 它主要包括两个组件

前言: Eureka已经停止更新了,在新的项目中,不推荐使用,通过对周阳老师视频的学习,本篇文章主要是简单介绍下Eureka,以及如何搭建集群环境的Eureka,让大家对Eureka有个初步的了解。

1.什么是Eureka

    Eureka 是 Netflix 开发的,一个基于 REST 服务的,服务注册与发现的组件,
以实现中间层服务器的负载平衡和故障转移。
它主要包括两个组件:Eureka Server 和 Eureka Client
Eureka Client:一个Java客户端,用于与 Eureka Server 的交互
Eureka Server:提供服务注册和发现的能力(通常就是微服务中的注册中心)。
服务在Eureka上注册,然后每隔30秒发送心跳来更新它们的租约。如果客户端不
能多次续订租约,那么它将在大约90秒内从服务器注册表中剔除。注册信息和更新被
复制到集群中的所有eureka节点。来自任何区域的客户端都可以查找注册表信息(每
30秒发生一次)来定位它们的服务(可能在任何区域)并进行远程调用。

2. Eureka集群项目搭建

   该示例主要包括4个maven项目,1个订单项目--asc-consumer-order80,2个支付
项目--asc-provider-payment8001,asc-provider-payment8002,2个eureka集群
项目--asc-eureka-server7001,asc-eureka-server7002 。

2.1 遵循以下原则来新建maven项目

1.新建module
2.修改pom.xml
3.新增application.yml文件
4.新建main启动类
5.编写业务类

2.2 新建订单项目

2.2.1 pom配置文件为


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

aspire-springcloud
com.springcloud
1.0-SNAPSHOT

4.0.0
asc-provider-payment8002



org.springframework.cloud
spring-cloud-starter-netflix-eureka-client


org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-actuator


org.springframework.boot
spring-boot-devtools
runtime
true


org.projectlombok
lombok

true

/dependency>

br />

dependency>


org.springframework.boot

spring-boot-starter-test

/artifactId>

br />

br /> aspire-springcloud

br />

groupId>org.springframework.cloud

/groupId>

br /> spring-cloud-starter-netflix-eureka-client




org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-actuator


org.springframework.boot
spring-boot-devtools
runtime
true


org.projectlombok
lombok
true


org.springframework.boot
spring-boot-starter-test


2.3.2 application.yml文件为

server:
port: 8001
spring:
application:
name: asc-provider-payment
eureka:
client:
#表示是否将自己注册进EurekaServer默认为true。
register-with-eureka: true
#是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
fetchRegistry: true
service-url:
#单机版
#defaultZone: http://localhost:7001/eureka
# 集群版
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
instance:
instance-id: payment8001
#访问路径可以显示IP地址
prefer-ip-address: true

2.3.3 业务类为

@RestController
@Slf4j
public class PaymentController {
@Value("${server.port}")
private String port;
@GetMapping(value = "/order/getPayMent")
public String getPayMent(){
return port;
}
}

2.4 新建两个端口号不同的eureka服务端项目

2.4.1 pom配置文件为


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

aspire-springcloud
com.springcloud
1.0-SNAPSHOT

4.0.0
asc-eureka-server7001



org.springframework.cloud
spring-cloud-starter-netflix-eureka-server



org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-actuator



org.springframework.boot
spring-boot-devtools
runtime
true


org.projectlombok
lombok


org.springframework.boot
spring-boot-starter-test
test


junit
junit


2.4.2 application.yml文件为

server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名称
client:
register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是
维护服务实例,并不需要去检索服务
service-url:
#集群指向其它eureka
defaultZone: http://eureka7002.com:7002/eureka/

2.5 测试

启动所有项目,在浏览器输入http://eureka7001.com:7001/,可以看到下图


在浏览器输入http://eureka7002.com:7002/,可以看到下图


说明3个项目都已经注册到eureka服务端了,通过访问订单项目,看看是否能够通过eureka找到支付项目,在浏览其中输入http://127.0.0.1/consumer/order/getPayMent,
浏览器显示的页面为


访问成功,Eureka集群环境搭建完毕。

编程小号
上一篇 2025-02-10 21:17
下一篇 2025-01-28 10:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/124254.html