当前位置: 首页 > news >正文

【黑马程序员】SpringCloud——Eureka

文章目录

  • 前言
  • 一、提供者与消费者
    • 1. 服务调用关系
  • 二、远程调用的问题
  • 三、eureka 原理分析
    • 1. eureka 的作用
  • 四、Eureka 案例
    • 1. 搭建 eureka 服务
    • 1. 服务注册
      • 1.1 注册 user-service
      • 1.2 启动 user-service
      • 3. order-service 完成服务注册
    • 3. 服务发现
      • 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 完成服务拉取

在这里插入图片描述


总结

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

http://www.lryc.cn/news/221892.html

相关文章:

  • 目标跟踪(DeepSORT)
  • 2 任务2: 使用趋动云GPU进行猫狗识别实践
  • 技术分享 | app自动化测试(Android)--显式等待机制
  • 机器学习基础之《回归与聚类算法(5)—分类的评估方法》
  • 如何在macbook上删除文件?Mac删除文件的多种方法
  • Java代码Demo——Map根据key或value排序
  • 一个Linux自动备份脚本的示例
  • [论文阅读]PV-RCNN++
  • 测试老鸟整理,Postman加密接口测试-Rsa/Aes对参数加密(详细总结)
  • JavaScript使用对象
  • 微带线的ABCD矩阵的推导、转换与级联-Matlab计算实例
  • “网站不安全”该如何解决
  • gitlab数据备份和恢复
  • 嵌入式Linux和stm32区别? 之间有什么关系吗?
  • 【Redis】String字符串类型-内部编码使用场景
  • 电脑发热发烫,具体硬件温度达到多少度才算异常?
  • 计算机网络第4章-IPv6和寻址
  • Lazarus安装和入门资料
  • mediapipe流水线分析 二
  • 1.性能优化
  • 使用Plsql+oracle client 连接 Oracle数据库
  • centos获取服务器公网ip
  • 思谋科技进博首秀:工业多模态大模型IndustryGPT V1.0正式发布
  • Wsl2 Ubuntu在不安装Docker Desktop情况下使用Docker
  • pytorch之relu激活函数
  • UML---用例图
  • 后端配置跨域怎么配置
  • 【计算机组成】实模式/保护模式下地址分段(基段地址+偏移地址)的原因
  • Web逆向-某网络学院学习的”偷懒“思路分析
  • 一个用python PyQT写的背单词小程序