Eureka服务注册与发现

简介: 本章介绍Eureka注册中心的搭建与使用,完成user-service和order-service服务注册,并实现多实例部署。虽Eureka已被SpringCloud逐步淘汰,但其核心思想仍具参考价值,后续将用Nacos替代深入探讨。

因前面提到Netflix相关组件已逐步被SpringCloud剔除,Eureka作为其中的注册中心,在此关注功能性即可,本章节不深入阐述其底层原理。后续章节替换为Nacos后,针对Nacos再做细节讨论。
1.Eureka工程搭建启动
● 新建module,名称:eureka-server
● 引入pom依赖,如maven未刷新需手动刷新拉取



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


● 新建启动类: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
● 工程启动并访问:http://127.0.0.1:10086/

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

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

2.user-service接入并启动
2.1 引入pom依赖


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

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自身注册自身带来的启动异常
  2. 应用启动正常,访问Eureka发现注册失败
    a. 确保应用引入依赖:spring-cloud-starter-netflix-eureka-server
    b. 确保优先启动Eureka,而后启动user-service、order-service
  3. 如遇其他未知问题,为避免浪费时间可直接使用此工程导入

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

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

相关文章
|
12天前
|
数据采集 人工智能 安全
|
7天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:七十、小树成林,聚沙成塔:随机森林与大模型的协同进化
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高准确性和稳定性。其核心思想包括两个随机性:Bootstrap采样(每棵树使用不同的训练子集)和特征随机选择(每棵树分裂时只考虑部分特征)。这种方法能有效处理大规模高维数据,避免过拟合,并评估特征重要性。随机森林的超参数如树的数量、最大深度等可通过网格搜索优化。该算法兼具强大预测能力和工程化优势,是机器学习中的常用基础模型。
344 164
|
6天前
|
机器学习/深度学习 自然语言处理 机器人
阿里云百炼大模型赋能|打造企业级电话智能体与智能呼叫中心完整方案
畅信达基于阿里云百炼大模型推出MVB2000V5智能呼叫中心方案,融合LLM与MRCP+WebSocket技术,实现语音识别率超95%、低延迟交互。通过电话智能体与座席助手协同,自动化处理80%咨询,降本增效显著,适配金融、电商、医疗等多行业场景。
345 155
|
7天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
581 4
|
15天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
1018 7