Eureka注册中心
服务调用出现的问题:
硬编码:
//2、利用RestTemplate发起http请求,查询用户
String url = "http://localhost:8081/user/" + order.getUserId();
1、服务消费者该如何获取服务提供者的地址信息
2、如果有多个服务提供者,消费者该如何选择
3、消费者如何得知服务提供者的健康状态
Eureka注册中心:
(1)注册服务信息:每个微服务启动时,都将注册服务信息在Eureka注册中心中,如端口号。【健康状态:每隔30秒发送一次心跳向Eureka确认自己的状态,当隔了30秒未发送时,Eureka则会清除对应的微服务信息】
(2)拉取服务:当某个微服务请求其它服务时,从Eureka注册中心中拉取请求的服务信息。
1、服务消费者该如何获取服务提供者的地址信息
服务提供者启动时向Eureka注册自己的信息
Eureka保存这些信息
消费者根据服务名称向eureka拉取提供者信息
2、如果有多个服务提供者,消费者该如何选择
服务消费者利用负责均衡算法,从服务列表中选择一个
3、消费者如何得知服务提供者的健康状态
服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态
Eureka会更新记录服务列表信息,心跳不正常会被剔除
消费者可以拉取到最新的信息
在Eeureka框架中,微服务角色有两类:
* EurekaServer:服务端,注册中心
记录服务信息
心跳监控
*EurekaClient:客户端
*provider:服务提供者,例如案例中的user-service
注册自己的信息到EurekaServer
每隔30s向EurekaServer发送心跳
*consumer:服务消费者,例如案例中的order-service
根据服务名称从EurekaServer拉取服务列表
基于服务列表做负载均衡,选中一个微服务后发起远程调用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构