Eureka服务注册与发现

简介: 本节介绍Spring Cloud中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.推荐阅读资料

目录
相关文章
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
902 150
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1640 8
|
6天前
|
人工智能 前端开发 文件存储
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择
星哥带你玩转飞牛NAS,部署开源笔记TriliumNext!支持树状知识库、多端同步、AI摘要与代码高亮,数据自主可控,打造个人“第二大脑”。高效玩家的新选择,轻松搭建专属知识管理体系。
362 152
|
7天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
600 152
|
9天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
561 13
|
2天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话