Eureka服务注册与发现

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
云数据库 PolarDB MySQL 版,列存表分析加速 8核16GB
RDS Agent(兼容OpenClaw),2核4GB
简介: 本章介绍SpringCloud中Eureka注册中心的搭建与使用,完成eureka-server、user-service、order-service的集成部署,实现服务注册与发现。虽Eureka已被逐步替代,但其功能实现为后续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如何实现服务注册与服务发现?
● 还有哪些技术可以实现服务注册与服务发现?

相关文章
|
Java
Java 清空 List 的多种方法?
Java 清空 List 的多种方法?
3265 0
|
3月前
|
Arthas 运维 监控
线上 JVM 故障秒解:Arthas 高阶用法与全链路定位实战指南
本文介绍阿里巴巴开源的Java诊断工具Arthas在线上JVM故障排查中的核心应用。针对CPU飙高、FullGC频繁、接口超时等常见问题,Arthas提供无需重启服务的热修复能力,包括方法热替换(trace/watch/tt命令)、线程问题定位(thread命令)、内存分析(heapdump)等核心功能。文章通过真实案例演示全链路排查流程,并给出安全使用建议,帮助开发者快速定位和解决线上问题,实现从被动救火到主动定位的转变。Arthas的字节码增强技术可实时监控JVM状态,是提升线上问题排查效率的利器。
761 2
|
XML 数据格式
hutool工具 XML工具
hutool工具 XML工具
|
8月前
|
存储 监控 安全
什么是技术架构、数据架构、业务架构、应用架构、产品架构和项目架构?
为何技术设计完善,项目仍推进艰难?根源在于架构认知缺失。本文系统解析业务、数据、应用、技术、产品、项目六大核心架构,揭示数字化建设的底层逻辑,助力跨部门协作与高效交付,实现技术价值最大化。
|
3月前
|
人工智能 Linux 调度
SDK级嵌入还是RPC调用?OpenClaw两种集成模式的性能对比与选型指南
OpenClaw集成选型指南:SDK嵌入模式(进程内、低延迟、易调试、高权限控制)适合单机高QPS场景;RPC模式(服务解耦、跨节点调度、强隔离)适配多设备与物理世界交互。性能差达量级(SDK延时<2ms vs RPC约15ms),支持混用,文末附简易决策树助你避坑。
|
4月前
|
人工智能 运维 关系型数据库
Moltbot实战:MoltBot+RDS AI助手Skill管理RDS实例
本文介绍如何5分钟快速对接Moltbot与阿里云RDS AI助手,打造专属AI数据库运维管家。通过开源Skill实现自动化诊断、参数调优、索引优化等能力,解放DBA于凌晨救火,让重复运维交给AI,专注高价值架构设计。(239字)
Moltbot实战:MoltBot+RDS AI助手Skill管理RDS实例
|
7月前
|
域名解析 监控 网络协议
阿里云DDoS高防IP:解析产品特性、防护能力、基础防御能力与收费价格
阿里云DDoS高防IP作为阿里云云安全体系中的核心产品,专为应对大规模DDoS(分布式拒绝服务)攻击及CC攻击等网络威胁而设计。该产品凭借其卓越的防护性能与稳定性,确保网站及业务在遭受大流量攻击时仍能维持正常访问,为用户的在线服务构筑起坚实的安全防线。
1072 12
|
12月前
|
JSON API Go
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:集成 Swagger UI 打造交互式 API 文档
GoWind Admin(风行)是基于 Kratos 的企业级中后台框架,集成 Swagger UI 实现交互式 API 文档。通过 Protobuf 自动生成 OpenAPI v3 规范文档,利用 `//go:embed` 嵌入服务,一键部署可视化调试界面,提升前后端协作效率,开箱即用。
806 1
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:集成 Swagger UI 打造交互式 API 文档
|
存储 算法 Java
深入剖析HashMap:理解Hash、底层实现与扩容机制
【9月更文挑战第6天】在Java编程中,`HashMap`是一个常用的数据结构,其高效性和可靠性依赖于深入理解哈希、底层实现及扩容机制。哈希通过散列算法将键映射到数组索引,采用链表或红黑树处理冲突;底层实现结合数组与链表,利用2的幂次方长度加快定位;扩容机制在元素数量超过负载因子与数组长度乘积时触发,通过调整初始容量和负载因子可优化性能。
525 3
关于支付宝异步通知的那些事
一、如何指定接收异步通知的地址     对于支付产生的交易,支付宝会根据原始支付API中传入的异步通知地址notify_url,通过POST请求的形式将支付结果 作为参数通知到商户系统。     以app支付为例,支付请求中notify_url参数的(如下图):      二、异步通知返回参数介绍     支付宝通过POST请求的形式将支付结果作为参数通知到商户系统。
3398 12