ribbon和nginx负载均衡图解

news/2024/10/21 5:43:16/

通俗来说

nginx

规定一个地址v(比如v代理了地址a,b,c,d且他们都实现了同一个服务e),然后当我们的请求想要实现e服务而去请求v的时候,v实际上就会从a,b,c,d中选一个来让他们给请求者提供服务。

ribbon

在请求服务的时候,先获得注册中心(比V地址上有一个nacos而此nacos在,a,b,c,d四个地址上有服务注册了 )上的服务的列表(此处就获得地址列表[a,b,c,d]),然后从中选一个来为请求提供服务。

也就是说,nginx是服务器端帮请求选服务,而ribbon是请求端帮请求选服务

注:因为nginx是一个反向代理服务器,在配置的时候,就已经给nginx配置了一些服务地址,所以不需要去访问一个nacos来获得服务列表。所以ribbon需要去访问一个nacos来获得服务列表,而nginx不需要

nginx图解:

(当然,你也可以把这一组的A服务换成几个注册的服务的功能完全相同的Nacos,然后在请求A处把A配置为Nacos服务发现源,这样可以在nginx实现负载均衡的同时,让请求A用“d+服务名”的格式访问到服务)

ribbon图解:

注:无论是ribbon还是nginx的图解中,举例中的几个相同的a服务或几个相同的b服务,只是代表一组,功能相同的服务,并不是说,他们名字呀什么都相同,想表达的是他们是一组功能相同的服务


http://www.ppmy.cn/news/1538304.html

相关文章

探索scikit-learn的datasets模块:数据集的加载与使用

引言 在机器学习和数据分析领域,数据集的选择和准备是至关重要的一步。scikit-learn库的datasets模块为我们提供了多种内置的数据集,方便我们进行模型训练和测试。这些数据集既有大型的数据集,也有便于教学和初步探索的小型数据集。本文将重…

【LeetCode】动态规划—188. 买卖股票的最佳时机 IV(附完整Python/C++代码)

动态规划—188. 买卖股票的最佳时机 IV 题目描述前言基本思路1. 问题定义交易规则: 2. 理解问题和递推关系两种情况:状态定义:状态转移方程:初始条件: 3. 解决方法动态规划方法特殊情况:当 k 大于等于 pric…

探索NVIDIA GPU PeerAccess的访问范围如何突破PCIE Bar空间大小

探索NVIDIA GPU PeerAccess的访问范围如何突破PCIE Bar空间大小 一.相关链接二.观察到的现象三.升级到cuda_12.6.2[可选]四.安装open-gpu-kernel-modules[可选,如果需要调试NV驱动源码]五.测试Kernel中访问Host内存以及H2D六.准备pcm,监控HOST Memory的带宽,用来确定PeerAccess…

OceanBase + DolphinScheduler,搭建分布式大数据调度平台的实践

本文整理自白鲸开源联合创始人,Apache DolphinScheduler PMC Chair,Apache Foundation Member 代立冬的演讲。主要介绍了DolphinScheduler及其架构、DolphinScheduler与OceanBase 的联合大数据方案。 DolphinScheduler是什么? Apache Dolphi…

如何使用Colly库进行大规模数据抓取?

在互联网时代,数据的价值日益凸显,大规模数据抓取成为获取信息的重要手段。Go语言因其高效的并发处理能力,成为编写大规模爬虫的首选语言。Colly库作为Go语言中一个轻量级且功能强大的爬虫框架,能够满足大规模数据抓取的需求。本文…

UDP和TCP的区别、网络编程(UDP回显服务器、TCP回显服务器)

目录 一、什么是网络编程 二、网络编程的内容概念 接受端和发送端 请求和响应 服务端和客户端 三、UDP和TCP协议的区别 四、UDP网络编程的类和函数(回显服务器) DatagramSocket DatagramPacket InetSocketAddress 基于UDP的回显服务器和客户…

电脑查不到IP地址是什么原因?怎么解决

在日常使用电脑的过程中,有时会遇到无法查询到电脑IP地址的情况,这可能会影响到网络的正常使用。本文将探讨电脑查不到IP地址的可能原因,并提供相应的解决方案。 一、原因分析 ‌网络连接问题‌:首先,网络连接不稳定或…

华为高频手撕冲刺

简单题 两数之和 方法一,暴力破解,时间复杂度O(n^2),空间复杂度O(1) class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:nlen(nums)for i in range(n):for j in range(i1,n):if nums[i]nums[j]target:retur…