【黑马程序员】SpringCloud——Eureka

文章目录

  • 前言
  • 一、提供者与消费者
    • [1. 服务调用关系](#1. 服务调用关系)
  • 二、远程调用的问题
  • [三、eureka 原理分析](#三、eureka 原理分析)
    • [1. eureka 的作用](#1. eureka 的作用)
  • [四、Eureka 案例](#四、Eureka 案例)
    • [1. 搭建 eureka 服务](#1. 搭建 eureka 服务)
    • [1. 服务注册](#1. 服务注册)
      • [1.1 注册 user-service](#1.1 注册 user-service)
      • [1.2 启动 user-service](#1.2 启动 user-service)
      • [3. order-service 完成服务注册](#3. order-service 完成服务注册)
    • [3. 服务发现](#3. 服务发现)
      • [1. 在 order-service 完成服务拉取](#1. 在 order-service 完成服务拉取)
  • 总结

前言

跟着B站的黑马程序员学习 SpringCloud,语言为java,目前是第二个学习内容

课程传送门:SpringCloud------Eureka


一、提供者与消费者

1. 服务调用关系

  • 服务提供者:暴露接口给其他微服务调用
  • 服务消费者:调用其他微服务提供的接口
  • 提供者与消费者角色其实是相对

二、远程调用的问题

三、eureka 原理分析

  • 问:消费者该如何获取服务提供者具体信息?

    ① 服务提供者启动时向 eureka 注册自己的信息

    ② eureka 保存这些信息

    ③ 消费者根据服务名称向 eureka 拉取提供者信息

  • 问:如果有多个服务提供者,消费者该如何选择?

    ① 服务消费者利用负载均衡算法,从服务列表中挑选一个

  • 问:消费者如何感知服务提供者健康状态?

    ① 服务提供者会每隔 30 秒向 EurekaServer 发送心跳请求,报告健康状态

    ② eureka 会更新记录服务列表信息,心跳不正常会被剔除

    ③ 消费者就可以拉取到最新的信息

1. eureka 的作用

在 Eureka 架构中,微服务角色有两类:

  1. EurekaServer:服务端,注册中心

    ① 记录服务信息

    ② 心跳监控

  2. EurekaClient:客户端

    ① Provider:服务提供者

    ② consumer:服务消费者

  3. Provider:服务提供者

    ① 注册自己的信息到 EurekaServer

    ② 每隔 30 秒向 EurekaServer 发送心跳

  4. consumer:服务消费者

    ① 根据服务名称从 EurekaServer 拉取服务列表

    ② 基于服务列表作负载均衡,选中一个微服务后发起远程调用

四、Eureka 案例

  • 搭建 EurekaServer

    ① 引入 eureka-server 依赖

    ② 添加 @EnableEurekaServer 注解

    ③ 在 application.yml 中配置 eureka 地址

  • 服务注册

    ① 引入 eureka-server 依赖

    ② 在 application.yml 中配置 eureka 地址

  • 服务发现

    ① 引入 eureka-server 依赖

    ② 在 application.yml 中配置 eureka 地址

    ③ 给 RestTemplate 添加 @LoadBalanced 注解

    ④ 用服务提供者的服务名称远程调用

1. 搭建 eureka 服务

1. 服务注册

1.1 注册 user-service

1.2 启动 user-service

3. order-service 完成服务注册

3. 服务发现

1. 在 order-service 完成服务拉取


总结

以上就是本章要讲的内容,本文仅仅简单复述了老师讲课的文本内容,内容有误麻烦联系。

相关推荐
Derek_Smart2 小时前
Java线程死亡螺旋:解析与预防策略
java·spring·性能优化
源码宝13 小时前
【智慧工地源码】智慧工地云平台系统,涵盖安全、质量、环境、人员和设备五大管理模块,实现实时监控、智能预警和数据分析。
java·大数据·spring cloud·数据分析·源码·智慧工地·云平台
J_bean14 小时前
Spring AI Alibaba 项目接入兼容 OpenAI API 的大模型
人工智能·spring·大模型·openai·spring ai·ai alibaba
2301_7930868714 小时前
SpringCloud 07 微服务网关
java·spring cloud·微服务
柳贯一(逆流河版)16 小时前
Spring 三级缓存:破解循环依赖的底层密码
java·spring·缓存·bean的循环依赖
蚰蜒螟19 小时前
Spring 和 Lettuce 源码分析 Redis 节点状态检查与失败重连的工作原理
java·redis·spring
duration~20 小时前
SpringAI集成MCP
人工智能·后端·spring·ai
悟纤20 小时前
Spring Boot 实用小技巧:多级缓存(Caffeine + Redis)- 第545篇
spring boot·后端·spring
励志成为糕手20 小时前
企业级Spring事务管理:从单体应用到微服务分布式事务完整方案
分布式·spring·微服务·隔离级别·事务管理
Dajiaonew1 天前
Spring AI RAG 检索增强 应用
java·人工智能·spring·ai·langchain