• 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_05-Feign远程调用-客户端负载均衡介绍


    2 Feign远程调用
    在前后端分离架构中,服务层被拆分成了很多的微服务,服务与服务之间难免发生交互,比如:课程发布需要调用
    CMS服务生成课程静态化页面,本节研究微服务远程调用所使用的技术。
    下图是课程管理服务远程调用CMS服务的流程图:


    1、cms服务将自己注册到注册中心。
    2、课程管理服务从注册中心获取cms服务的地址。
    3、课程管理服务远程调用cms服务。


    2.1 Ribbon
    2.1.1 Ribbon介绍
    Ribbon是Netflix公司开源的一个负载均衡的项目(https://github.com/Netflix/ribbon),它是一个基于HTTP、
    TCP的客户端负载均衡器
    1、什么是负载均衡?
    负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过
    硬件设备及软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。
    如下图是负载均衡的架构图:


    用户请求先到达负载均衡器(也相当于一个服务),负载均衡器根据负载均衡算法将请求转发到微服务。负载均衡
    算法有:轮训、随机、加权轮训、加权随机、地址哈希等方法,负载均衡器维护一份服务列表,根据负载均衡算法
    将请求转发到相应的微服务上,所以负载均衡可以为微服务集群分担请求,降低系统的压力。
    2、什么是客户端负载均衡?
    上图是服务端负载均衡,客户端负载均衡与服务端负载均衡的区别在于客户端要维护一份服务列表,Ribbon从
    Eureka Server获取服务列表,Ribbon根据负载均衡算法直接请求到具体的微服务,中间省去了负载均衡服务。
    如下图是Ribbon负载均衡的流程图:


    1、在消费微服务中使用Ribbon实现负载均衡,Ribbon先从EurekaServer中获取服务列表。
    2、Ribbon根据负载均衡的算法去调用微服务。



     

  • 相关阅读:
    记一次JVM Full GC (Metadata GC Threshold)调优经历
    非root用户启动nginx
    springboot项目报错解决:ERROR StatusLogger No Log4j 2 configuration file found
    分布式锁的常见实现思路
    虚拟机安装redis及宿主机连接测试
    使用console.log打印的内容不一定可信
    《数据库系统概论》第九章笔记
    《数据库系统概论》第六章笔记
    英文论文里的缩写:e.g. etc. et al. i.e.
    英文论文里的缩写:e.g. etc. et al. i.e.
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11661660.html
Copyright © 2020-2023  润新知