Eureka服务注册与发现

简介: 本节介绍SpringCloud中Eureka注册中心的搭建与使用,完成服务注册与发现功能,为后续Nacos替换Eureka奠定基础。

因前面提到Netflix相关组件已逐步被SpringCloud剔除,Eureka作为其中的注册中心,在此关注功能性即可,本章节不深入阐述其底层原理。后续章节替换为Nacos后,针对Nacos再做细节讨论。

1.Eureka工程搭建启动

  • 新建module,名称:eureka-server
  • 引入pom依赖,如maven未刷新需手动刷新拉取

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
</dependencies>
  • 新建启动类:EurekaApplication
package cn.itcast.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* Eureka启动类
*
* @author 
* @date 2022-12-22 16:20
*/
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
        System.out.println("Eureka服务启动成功");
    }
}
  • 新建配置文件:application.yml
server:
  port: 10086 # 服务端口
spring:
  application:
    name: eurekaserver # eureka的服务名称
eureka:
  client:
    serviceUrl:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka
    register-with-eureka: false
    fetch-registry: false

至此,eureka已完成创建、部署、访问。至此工程目录结构如下

打开Idea-Service控制台

稍后章节我们需工程多开部署(为后续Ribbon测试打好基础),需读者提前打开一下控制台窗口

2.user-service接入并启动

2.1 引入pom依赖

<!--eureka-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2.2 更新配置文件

以下配置文件注意缩进,其中application为spring下二级路径,主要为了区分多个注册在eureka上的服务。

application:
    name: userservice
eureka:
  client:
    service-url: #eureka服务路径
      defaultZone: http://127.0.0.1:10086/eureka/

2.3 启动并查看Eureka信息

2.3 复制模拟多实例部署

右键UserApplication,选择:Copy Configuration

设置应用信息,打开VM参数设置

VM参数设置如下:-Dserver.port=8082

启动应用并查看Eureka信息,此时变成两个活跃实例

3.order-service接入并启动

重复user-service操作,pom文件依赖操作完全一致,但配置文件中应用名称不同,在此单独贴出

application:
    name: orderservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka/

启动后访问页面如下


至此我们的工程部署运行情况如下:

此时工程目录结构如下

4.常见问题及解决方案

  1. Eureka启动报错但页面访问正常

确保Eureka信息配置中增加:register-with-eureka: false、fetch-registry: false,以避免因Eureka自身注册自身带来的启动异常

  1. 应用启动正常,访问Eureka发现注册失败
  1. 确保应用引入依赖:spring-cloud-starter-netflix-eureka-server
  2. 确保优先启动Eureka,而后启动user-service、order-service
  1. 如遇其他未知问题,为避免浪费时间可直接使用此工程导入

📎cloud.zip

5.总结

本节读者带领大家完成SpringCloud集成组件Eureka的开发、部署,并完成业务应用在Eureka的注册、访问。基于此细心的读者朋友们可以发现:上一章节还写死的访问地址,已经变成动态从注册中心获取了,避免了接口提供方注册信息变更、导致消费方接口服务调用异常的场景。随着Eureka的剔除,Nacos又将如何优雅替换Eureka呢?待我们后续继续实操逐步发掘吧。


思考问题

  • Eureka是什么?解决了什么问题?
  • Eureka如何实现服务注册与服务发现?
  • 还有哪些技术可以实现服务注册与服务发现?

6.推荐阅读资料

相关文章
|
存储 JSON JavaScript
【2023-08-20】最新PDF.js PDF批注注释插件库:创建、保存和管理PDF注释批注(高亮、文本框、绘图、截屏、历史记录、橡皮檫)-pdf.js
探索基于pdf.js-dist开发的纯Javascript PDF批注插件库,支持保存、导出、导入和管理PDF文件中的批注。多个功能模块为您提供丰富的PDF注释体验。
1267 0
【2023-08-20】最新PDF.js PDF批注注释插件库:创建、保存和管理PDF注释批注(高亮、文本框、绘图、截屏、历史记录、橡皮檫)-pdf.js
|
开发工具 git
IDEA中Git面板操作介绍 变基、合并、提取、拉取、签出
在IDEA的Git面板中,仓库会分为本地仓库和远程仓库,代码仓库里面放的是各个分支。
5002 2
|
3月前
|
存储 JavaScript Windows
nvm-windows 安装教程:Node.js 多版本管理(避坑版)
本教程详解Windows下nvm安装与配置:先彻底卸载旧Node,再以管理员身份运行nvm-setup.exe;建议安装路径避开C盘及中文/空格;安装后执行`nvm version`验证,并配置淘宝镜像加速下载;支持一键查看、安装、切换多版本Node。(239字)
|
9月前
|
JSON Java 数据格式
SpringBoot使用汇总
本课程系统讲解Spring Boot核心知识,涵盖环境搭建、JSON处理、日志配置、全局异常处理、AOP切面编程及MyBatis、Redis等主流框架集成,并结合实际项目搭建完整开发架构,助你快速掌握微服务开发技能。
|
5月前
|
传感器 人工智能 算法
AI 算法盒子:边缘智能分析网关技术与应用
AI算法盒子是轻量高性能边缘计算设备,支持视频/传感器数据本地实时分析,具备离线推理、毫秒告警、多算法加载、低带宽上传等能力,广泛应用于安全生产、智慧园区、工业检测等场景,实现AI能力下沉与智能化快速升级。
852 1
|
9月前
|
机器学习/深度学习 安全 算法
基于yolov8的安全帽检测系统
本研究基于YOLOv8目标检测算法,构建安全帽佩戴智能识别系统,针对建筑、矿山等高危作业场景,实现对人员头部防护的实时监控与预警。系统结合深度学习与计算机视觉技术,通过高效标注数据集、优化模型结构,提升检测精度与速度,在1080P图像下可达35FPS以上,满足工业级实时性需求。相比传统人工巡查,显著降低漏检率,提高监管效率,助力高危行业向智能化安全管理转型,具有重要应用价值与推广前景。
|
9月前
|
Java Shell 测试技术
Jmeter快速入门
本文介绍JMeter的安装与快速入门,包括下载、解压、运行步骤,以及中文语言设置和基本使用方法,帮助用户快速上手性能测试工具JMeter。
|
9月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细讲解了Nacos作为配置中心的核心功能与实践应用,涵盖配置管理、热更新、共享配置及优先级规则,并通过搭建Nacos集群实现高可用部署,帮助开发者掌握微服务环境下配置的集中化管理方案。
 Nacos配置中心
|
9月前
|
移动开发 小程序 前端开发
多端陪玩系统搭建:uni-app+PHP 对接阿里云服务(小程序 / 公众号 / APP)
基于uni-app与阿里云的多端陪玩系统,集成OSS、短信、直播RTS及支付功能。通过STS临时凭证、Redis防刷、JWT鉴权保障安全,支持小程序、H5、APP多端适配,实现低延迟音视频通话与高并发稳定运行,助力高效运营。(239字)
479 0