码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 微服务框架 SpringCloud微服务架构 3 Eureka 3.2 Eureka 原理分析


    微服务框架

    【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

    SpringCloud微服务架构

    文章目录

        • 微服务框架
        • SpringCloud微服务架构
        • 3 Eureka
          • 3.2 Eureka 原理分析
            • 3.2.1 服务调用出现的问题
            • 3.2.2 Eureka 的作用
            • 3.2.3 总结

    3 Eureka

    3.2 Eureka 原理分析
    3.2.1 服务调用出现的问题

    在我们之前的Demo 案例中,出现了下图所示的调用情况

    在这里插入图片描述

    而且是采用硬编码的形式,把IP和端口告诉order 服务

    在这里插入图片描述

    这样也很容易地就带来一些问题,这样写死了,环境改变了怎么办?耦合度巨高

    而且随着服务的高并发,user 服务可能会部署成多个实例,

    在这里插入图片描述

    这样时候,硬编码咋办?【所以这里一定不能用硬编码】

    【归结一个问题:服务消费者到底应该如何获取服务提供者的地址信息?】

    而且有一天,咱们真的拿到了它们每台的地址,有多个服务提供者的情况,消费者又该如何选择?

    而且,消费者又如何得知服务提供者的健康状态? 【…一堆的问题】

    在这里插入图片描述

    【这个时候就可以请出 Eureka了】

    3.2.2 Eureka 的作用

    在这里插入图片描述

    一个服务端,一个客户端

    在每一个 user-service 和 order-service 启动的那一刻,会把自己的信息注册给Eureka

    在这里插入图片描述

    现在当有消费者想要消费服务时,就直接找Eureka

    在这里插入图片描述

    这样第一个问题 【服务消费者到底应该如何获取服务提供者的地址信息】 就解决了

    接着通过负载均衡,从三个中挑一个出来

    在这里插入图片描述

    再接下去,就可以发请求了

    在这里插入图片描述

    【怎么保证服务是健康的?】

    在这里插入图片描述

    心跳续约,每30 s 一次,来让注册中心确认自己的状态

    在这里插入图片描述

    如果说有天 user-service 8083 没跳了,注册中心就会把它从信息中删除

    order-service 再次拉取服务信息时,就不会拉到8083 了

    在这里插入图片描述

    【即消费者可以监控到服务提供者的状态】

    回顾一下“三个问题”

    1. 消费者该如何获取服务提供者具体信息?

      • 服务提供者启动时向eureka注册自己的信息
      • eureka保存这些信息
      • 消费者根据服务名称向eureka拉取提供者信息
    2. 如果有多个服务提供者,消费者该如何选择?

      • 服务消费者利用负载均衡算法,从服务列表中挑选一个
    3. 消费者如何感知服务提供者健康状态?

      • 服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态
      • eureka会更新记录服务列表信息,心跳不正常会被剔除
      • 消费者就可以拉取到最新的信息
    3.2.3 总结

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

    • EurekaServer:服务端,注册中心

      • 记录服务信息
      • 心跳监控
    • EurekaClient:客户端

      • Provider:服务提供者,例如案例中的 user-service

        • 注册自己的信息到EurekaServer
        • 每隔30秒向EurekaServer发送心跳
      • consumer:服务消费者,例如案例中的 order-service

        • 根据服务名称从EurekaServer拉取服务列表
        • 基于服务列表做负载均衡,选中一个微服务后发起远程调用
  • 相关阅读:
    [gstreamer] overview of gstreamer
    统信UOS升级Python3及安装spyder5
    论文解读:SlowFast Networks for Video Recognition
    【前沿】数据目录是什么?您为何需要它?
    基于 Rainbond 部署 DolphinScheduler 高可用集群
    并发编程中的金光咒-锁(基础版)
    B端产品经理和C端产品经理,做哪个更好?
    Java开发学习---Bean基础配置及其作用范围
    蓝桥杯2024年第十五届省赛真题-小球反弹
    Ribbon负载均衡服务调用
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/128073234
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号