springCloudAlibaba组件-Nacos-服务发现与负载均衡(三)

文章目录

  • 服务发现概述
    • 服务发现两种形式
      • nacos的负载均衡机制

服务发现概述

如果项目使用微服务架构,如果A微服务需要访问B微服务,需要http请求进行调用,当然需要B微服务的地址与端口号,微服务可以向之前提到的服务中心进行获取B服务的ip地址和端口号,这就是服务发现

服务发现两种形式

1.客户端主动获取
客户端:
流程:
1.先是故障转移机制判断是否去本地文件中读取信息,读到则返回
2.再去本地服务列表读取信息(本地缓存),没读到则创建一个空的服务,然后立刻去nacos中读取更新
3.读到了就返回,同时开启定时更新,定时向服务端同步信息 (正常1s,异常最多60s一次)
服务端:
流程:获取服务列表 ,推送数据

2.服务端主动推送
条件:建立长连接、触发推送事件

服务端:监听服务变更事件,服务变更调用触发事件,触发事件主动推送服务变更信息到客户端
客户端:收到服务端变更信息,客户端主动拉取会赚钱最新的服务信息

nacos的负载均衡机制

负载均衡:将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行
负载均衡分为两种:
客户端的负载均衡与服务器端的负载均衡

			服务器端负载均衡:

springCloudAlibaba组件-Nacos-服务发现与负载均衡(三)_第1张图片
就是让一个人(Nginx)来安排学生(请求)来排队到不同的窗口(应用服务器)打饭嘛
客户端的负载均衡
客户端的负载均衡是在spring-cloud后出现的,在spring-cloud中有ribbon组件来负责负载均衡。spring的负载均衡需要用到服务注册中心eruka。

服务提供方:将自己注册到服务注册中心eruka

服务消费方:从服务注册中心中获取服务列表,使用服务

客户端的负载均衡流程如下:

服务消费方通过ribbon先从服务注册中心获取服务列表,根据一定的负载均衡算法,分发请求到不同的服务提供方
springCloudAlibaba组件-Nacos-服务发现与负载均衡(三)_第2张图片
可以理解成学生(服务消费方)在进入饭堂(服务注册中心)后根据自己的想法(负载均衡策略)选择合适的窗口(服务提供方)

nacos自带负载均衡策略,通过负载均衡器进行调用微服务(默认使用轮询机制)

你可能感兴趣的:(服务发现,负载均衡,微服务)