Eureka简介
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要目的为负载均衡和中间层服务故障转移。
Eureka包含两个组件:Eureka Server和Eureka Client。
Eureka Server提供服务注册服务,存储所有可用服务节点
Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
Eureka的作用
- client如何使用服务?
- 每个服务提供方,在启动时会向server端提供自己的地址,服务实例名称
- server端会存储这些信息
- 服务消费方,通过服务名称拉取所需调用的服务实例;如果存在多个同名服务,进行负载均衡计算获取其中一个目标服务进行返回。
- server如何管理服务上线掉线?
- client每隔30秒向 server发送心跳请求,报告自己在线
- server会更新服务列表信息,在一定周期内(90秒)未收到心跳时,移除该服务
Eureka服务端搭建
- 创建一个空项目,分别创建eureka的server模块、自己的应用服务模块
- 该demo试图是把我们公司实际生产中,存在大量单体服务,且各个服务之间,或多或少有数据交互的一个项目,转换为微服务
- 初始项目结构图如下

- 父项目pom.xml配置
- dependencyManagement定义全局Spring Cloud/Boot组件版本(该处定义了之后,子模块只管dependency,不需要指定version)
<properties>
<java.version>1.8</java.version>
<spring-boot-version>2.7.10</spring-boot-version>
<spring-cloud.version>2021.0.9</spring-cloud.version>
</properties>
<dependencies>
<!-- 漏洞告警自行处理,譬如logback1.4.11的反序列化未受信任数据(CVE-2023-6378) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 健康检查、信息获取、指标监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${
spring-boot-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${
spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 模块dingsu-eureka(eureka Server)的pom.xml
spring:
application:
name: confucius-eureka-server
server:
port: 4499
eureka:
instance:
#注册实例名称
hostname: localhost
#是否将自己的ip注册到eureka中,默认false
prefer-ip-address: true
client:
#是否作为客户端,注册自己到eureka server中
register-with-eureka: false
# 是否作为客户端,拉取其他服务
fetch-registry: false
logging:
config: classpath:logback.xml
- 模块dingsu-eureka(eureka Server)启动类
package com.hd.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer

最低0.47元/天 解锁文章
877

被折叠的 条评论
为什么被折叠?



