有关分布式系统的负载均衡问题

目前做微服务接触到spring cloud,使用ribbon做了负载均衡;
而dubbo本身也实现了负载均衡;
但是在实际生产环境中依然使用了nginx;
它们有什么区别呢?既然dubbo和spring cloud实现了负载均衡,为什么生产系统还要使用nginx呢?

0

2个回答

负载均衡是用于平衡每台服务的请求量,防止产生热点。

dubbo提供的是RPC的服务调用,这种服务一般用于内部接口,例如公司内部跨业务的操作,A 业务需要通过dubbo访问B 业务的服务。
此时dubbo的负载均衡相当于对于B业务的服务做负载均衡。

ribbon是提供http请求的负载均衡,这种一般用于对外的API接口,例如基于restful的接口。
例如A业务有100个节点,其中30个节点是对外的Api接口,这种情况下就可以使用这种方式进行均在均衡。

nginx是在网关层面的负载均衡,这种负载均衡不需要代码入侵,可以实现动态配置。并且无关协议,可以对于多种协议实现负载均衡,包括http, rpc等。

总结来看,dubbo的负载均衡只面向dubbo服务,是rpc服务的负载均衡。ribbon的负载均衡面向http请求。这两种都是细粒度化的负载均衡。
nginx是网关层面的负载均衡。

2
bettyF
bettyF 非常感谢
10 个月之前 回复

负载均衡分类可以按照协议层分类,也可以按照集中式负载均衡和分布式负载均衡。我们常见的LVS、haproxy、nginx都是集中式负载均衡,这种模式压力会在负载均衡器。向当前rpc都是分布式负载均衡(或者叫做客户端模式下负载均衡),这种方式属于客户端主动去注册中心拉取需要消费组的信息,然后本地采用策略分摊压力。
这两种方式本质上是有区别的,当前的使用场景:
1、流量入口(比如网关层),必须使用nginx等集中式的负载均衡
2、提供正常的http/TCP服务,没有使用dubbo、spring cloud等框架但是必须提供负载均衡能力,只能选用nginx负载均衡
3、框架提供客户端负载均衡模式才能使用该方式

0
bettyF
bettyF 非常感谢
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
分布式系统如何负载均衡
思考:分布式系统如何负载均衡,如何确定访问的资源在哪个服务器上?nn       负载均衡将请求派发到网络中的一个或多个节点上进行处理。 n硬件负载均衡,即通过在服务器间安装专门的硬件来进行负载均衡工作 n软件负载均衡,通过服务器上安装的软件来对请求进行分配派发。nn负载均衡策略nnnn1.轮询nn给每个请求标记序号,之后把请求依次分发到...
分布式系统常见负载均衡算法
一、概要nn随着系统日益庞大、逻辑业务越来越复杂,系统架构由原来的单一系统到垂直系统,发展到现在的分布式系统。分布式系统中,可以做到公共业务模块的高可用,高容错性,高扩展性,然而,当系统越来越复杂时,需要考虑的东西自然也越来越多,要求也越来越高,比如服务路由、负载均衡等。此文将针对负载均衡算法进行讲解,不涉及具体的实现。nn二、负载均衡算法nn在分布式系统中,多台服务器同时提供一个服务,并统一到服...
分布式系统、负载均衡原理
分布式系统nn多个计算机节点,通过网络间通信协调,完成分布式计算和分布式存储,共同完成一个任务。nn多机之间的同步和计算结果的结合的具体策略值得研究nnnn负载均衡nn在多机通信时,选一台服务器做中心控制调度的机器,由它来控制采用什么策略来选择各种服务器,这种策略是负载均衡。nnnn各种负载均衡策略:nn轮询法、随机法、Nginx加权轮询法、加权随机法nn源地址哈希法、、最小连接法等,应根据具体...
分布式系统中的定时任务全解(二)
分布式场景下如何做定时任务,如何防止定时任务多服务器时的冲突?
一种分布式系统中动态负载均衡策略.pdf
一种分布式系统中动态负载均衡策略.pdf 一种分布式系统中动态负载均衡策略.pdf 一种分布式系统中动态负载均衡策略.pdf
大规模分布式系统资源管理(一)
女主宣言如今大火的机器学习和人工智能等技术如何应用在资源管理方面?我们请到了南开大学的王刚和李雨森教授前来360,分享他们以及所在课题组在大规模分布式系统资源管理方面的研究工作,内容包括云游戏系统中的请求调度、资源分配,以及搜索引擎数据中心的负载均衡、配额管理等。PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!主要内容1云游戏中的资源管理2搜索引擎中的资源管理3AI
15分钟了解分布式系统的发展史
相关代码无,本文仅仅对于分布式系统的发展做个最最最简单的介绍,如果你是新手,相信看了本文之后,你能够对于分布式系统的发展历史有个大概的了解nn一切的开始:单服务器nnn当然像这种单体服务器,由于既要提供服务又要充当数据库,所以主要性能放在了通过IO访问文件去了,而不是提供服务,所以很快就被淘汰了nn增加数据库服务nnn这种架构虽然解决了服务器既提供服务,又要读写IO的问题n但是现在所有问题都压到数...
负载均衡+性能优化+分布式网站安全大型分布式电商项目实战课程(免费不加密)
01-大型分布式系统概述;集中式、垂直式、分布式应用架构的变迁思路;SOA体系架构,服务化的演变;SOA的基础--RPC远程调用n02-服务的路由和负载均衡;SOA架构所面临的问题n03-构建安全的分布式网站;常见的Web攻击手段,XSS、CRSF、SQL注入攻击、DDos攻击等等;面对攻击,应该如何防御,具体的防御手段;如何架构安全的网站,保障通信的安全;常用的安全算法的使用场景n04-数字签名...
分布式服务如何实现服务回调
分布式服务如何实现服务回调rn  服务回调:  是服务提供者给调用者提供的一个功能,允许在执行服务的过程中,当满足一定条件时,回调用户的接口方法。rn  Java实现回调步骤主要如下:rn   1. 服务提供者定义回调接口,并提供包含回调接口参数的服务方法,在方法实现中调用回调接口参数的方法。rn   2. 客户端实现回调接口rn   3. 客户端将回调接口实现对象作为参数,调用服务方法.rn  ...
分布式系统中如何较好地做服务发现
前言nn在分布式系统中的中心管理服务模式下,往往采用的模式是1个manager服务节点,多个worker节点,然后由manager来管控这些worker节点。但是本篇文章不是来讲manager如何管理的问题,而是woker识别发现manager服务的问题。目前一种比较简单的做法,通过worker节点本地配置的方式,来指定manager服务地址。这种方式实现较为容易,但是可维护性并不高。比如一个简单...
(原创)分布式系统应对单点故障策略选择
分布式系统应对单点故障策略选择n一,引入n在现在的网络大环境下,越来越大的信息量导致了web应用系统一步步的进行变革。如下图,应用架构经历了四次大的改变:从 单一应用架构 到 垂直应用架构n再到 分布式服务框架 最后到现在的 流动计算框架。n 相应的,服务器的处理数据量也有了一个大的飞跃,随之而来的就是过大的请求量给服务器带来的挑战。而单点服务器再不能适用于现在的线上环境,所以下面对单点故
解决表单重复提交和分布式服务器验证码存放问题
一、解决表单重复提交问题n1.表单重复提交很常见,解决的方案一般有两种,一种是在前段处理,另一种是在服务器端处理,如下:nn 前端处理:在我的开发过程中是将提交按钮里面定义一个属性标记isClick,在没有点击之前设置值为false
分布式系统的常见问题
不好意思最近实在是有点太忙了,将近一个月没更新博客,其实前几天我是有发表一篇关于HSF框架的源码解析,后来由于一些原因不得不删除。其实HSF也跟Dubbo类似,解决了分布式系统中的一系列问题。分布式带来的优势就是能够将复杂业务拆分成多个服务的组合,就如同controller-service-dao中的service接口部署在不同的机器上,service不就是服务的抽象么。让不同的团队维护不同的ser
分布式系统常见问题总结(二)
1.网络IO实现方式rn分布式系统间的通信的基础是网络IO,不同的技术都会有自己不同的实现,但是通信原理是基于下面三种通信方式:BIO,NIO,AIO。rn首先BIO,NIO,AIO都是基于socket套接字来通信的,socket是传输层协议TCP/UDP的具体实现。rnBIO:同步阻塞IO,每一个Socket使用一个线程来通信。阻塞表现在,主线程调用write()方法后,不能做其他事情,阻塞了,
session理论以及解决分布式系统下的session共享问题
一、广义的session n二、可以理解为一种保存key-value的机制: n session机制中的关键点是如何去设置和获取key,另外一点是能够设置和保存正确的value。从key的方面看有两种:sessionId和token n 1、sessionId很常见,客户端请求服务端的时候,服务端通过 set cookie就可以在http头里面这个sessionId设置key
分布式系统常见问题总结(一)
1.分布式扩容问题。一致性Hashn2.Session问题。n3.数据库读写分离,数据复制延迟的问题。n4.事务的问题n5.数据水平拆分后,一个表中的数据(比如用户信息等)在不同的数据库里的问题。SQL路由,自增字段,主键唯一,分页等问题。n6.应用之间的通信问题。
基于JWT验证原理解决分布式系统session一致性问题
session一致性问题n在集群或者分布式系统中,用户登录后的,由于服务端是集群环境或者分布式环境,如何保证用户每次与服务器交互都是使用原来的session或者实现单点登录,这里就涉及session一一致性的问题。n解决session一致性问题可以从两种思路实现,一种是session服务端存储,一种是session客户端存储。nsession服务端存储n服务端存储session,需要保证用户请求过...
一种分布式系统中定时任务的解决思路和框架
一种分布式系统中定时任务的解决思路和框架nnnnn      周期性定时任务在分布式系统中非常常见,如周期性地执行数据采集、统计、推送等等。一个业务系统的后台可能存在很多不同种类、不同粒度的周期性任务,而且它们分布在不同的服务器节点中执行。n     常见的解决思路:n1. 利用linux crontab或windows计划任务定时执行一段脚本或程序;n2. 自编程序中实现定时器,
分布式环境Ajax的跨域请求
分布式结构优点rnrn        在做该系统的过程中,系统的前台和后台是分开,但是都使用同一个数据库,这样设计架构的优点有:rn       1、前台系统和后台的服务相分离,降低了系统的耦合度。rn       2、有利于开发团队的分工协作,提高开发的效率。rn       3、可以灵活进行分布式的部署,也就是说当PC端和移动端都请求服务层时,服务层压力或比较大,这样可以单独给服务层添加设备,
分布式系统测试的最难点
最难点在于:评价指标什么是对什么是错?什么是好什么是坏?最简答的例子:一个query大部分时候很快,偶尔由于系统负载高变慢,如何评价这个测试是好是坏?mysqltest、pquery 等测试工具选取了简单可以来的评价标准,使得其测试很容易标准化,很好做回归。系统稳定性、特殊场景下的功能测试,怎么静下心来定义测试效果评价标准,是非常非常重要的工作。
构建JAVA大型分布式电商项目实战高并发集群分布式系统架构PDF+视频.rar
构建JAVA大型分布式电商项目实战高并发集群分布式系统架构PDF+视频
分布式系统常见问题总结(四)- 应用间通信
Hessian分布式系统间通信的常见方式有两种,一种是消息通信,比如JMS,RocketMQ等,一种是RPC远程调用。我们先来看一下通信的基础知识,然后主要来看一下RPC远程调用,消息通信大家可以参考我的下一篇文章——分布式常见问题总结(五)- 消息队列。
分布式集群系统下的高可用session解决方案
rn分布式集群系统下的高可用session解决方案rn----guanfuming 20130216rn目前,为了使web能适应大规模的访问,需要实现应用的集群部署. 而实现集群部署首先要解决session的统一,即需要实现session的共享机制。rn 目前,在集群系统下实现session统一的有如下几种方案:rnrnnrn(1) 应用服务器间的session复制共享(如tomcat sessi...
分布式,集群,冗余的理解
分布式:针对同一个服务的多个子服务,每个子服务各不相同,然后把每个子服务分别部署到独立的服务器上,实现分布式。nn集群:针对同一个服务,将同一个服务部署到多个独立的服务器上,每个服务器上运行的都是同一个服务,这些服务器集体构成了一个服务器的集群。集群通常需要一个负载均衡服务器来分配访问请求到这些服务器上。nn冗余:针对完成一个服务所需的资源。假设1个服务器能提供100人访问,则要实现200人访问只...
Druid大数据实时处理的开源分布式系统——Coordinator
Druid技术笔记整理第4篇,关于Druid CoordinatorrnrnrnrnCoordinator 主要完成如下功能:rn1.  loading new segmentsrn2.  dropping outdated segmentsrn3.  managing segment replicationrn4.  balancing segment loadrnrnrnCoordin
分布式架构——Nginx 反向代理与负载均衡
本文介绍一下使用Nginx反向代理来做负载均衡。使用十分简单,只需要配置upstream并选择负载均衡策略,再配置server反向代理功能就全部搞定了。
(转)浅谈分布式系统的基本问题:可用性与一致性
rn该文章来自于阿里巴巴技术协会(ATA)精选文章。rn背景rn可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的 关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖,再有开源产品ZooKeeper实现的ZAB协议号称超越 Paxos,它们之间究竟有什么联系?在网络上没有文章...
Asp.net+Mvc+NGinx+IIS分布式部署和负载平衡实例详细图解
本文资源下载(全部源码+NGinx+配置文件+Doc):nnhttps://download.csdn.net/download/xjzdr/10559834nn目的:在IIS中创建四个相同的网站,浏览器访问同一个地址,通过NGinx转到不同的IIS网站。nn nn测试条件:nnWindows 7 X64旗舰版+Visual Studio 2017专业版nn nn创建Asp.net +Mvc We...
几种软负载均衡策略分析
公司去年上了F5,好用是好用,但是费用太高昂了,所以最近一直在研究软负载均衡这一块儿,恰巧今年年初谷歌开源了seesaw,让自己可以绕过很多弯路。特此总结下之前了解的负载均衡策略。 -Sunface在分布式系统中,负载均衡是非常重要的环节,通过负载均衡将请求派发到网络中的一个或多个节点上进行处理。通常来说,负载均衡分为硬件负载均衡及软件负载均衡。硬件负载均衡,顾名思义,在服务器节点之间安装专门的硬
搭建linux服务器集群,简单实现,负载均衡,动静分离,数据主从复制,分布式缓存,共享session回话。
负载均衡方案:rnrnrnnignx  应用层负载均衡     rn优点:配置简单rn缺点:均衡性能一般 有流量消耗  基于反向代理rnrnrnLVS    网络层负载均衡rn优点:配置复杂rn缺点:操作系统级别的负载均衡,性能强 无流量消耗 基于网络转发rnrnrnF5     设备层负载均衡rn优点:与操作系统无关。处理能力更强大!商业产品,功能完善。rnrn缺点:成本高,除设备价格高昂。rn
私有云扩展架构术语解释
内容涉及负载均衡, 分布式系统,私有云等一些知识的总结与解释
ssd8-CORBAL.rar
ssd8-CORBAL分布式系统有关资料。。。。。。。
有关分布式系统的问题
本人自己做了一个DCOM的分布式应用程序,在本地机上运行客户端能够正常执行,rn但将客户端程序放到同一工作组的其它机器上,则出现“拒绝访问”的错误信息,rn请问这是为什么,如果是应用服务器端的设置存在问题,那应该如何设置?rn谢谢!
几道JAVA和分布式系统面试题总结
两个对象相互引用会不会被GC?nnn仍然会被GC。因为JVM按照对象在以GC root为根节点的图中的可达性来决定对象是否被GC。相互引用的两个对象,引用数虽然不为0,但如果跟外界其他对象都没有引用关系,即是一个孤岛,仍然会被GC。nnjava中可作为GC Root的对象有n1.虚拟机栈中引用的对象(本地变量表)n2.方法区中静态属性引用的对象n3. 方法区中常量引用的对象n4.
分布式缓存系统面临的问题
缓存一致性问题nn1:缓存系统与底层数据的一致性。这点在底层系统是“可读可写”时,写得尤为重要nn2:有继承关系的缓存之间的一致性。为了尽量提高缓存命中率,缓存也是分层:全局缓存,二级缓存。他们是存在继承关系的。全局缓存可以有二级缓存来组成。nn3:多个缓存副本之间的一致性。为了保证系统的高可用性,缓存系统背后往往会接两套存储系统(如memcache,redis等)nn缓存穿透和缓存雪崩nn上面有...
分布式系统一致性问题处理思路
为啥出现一致性问题nn在传统单体架构中,数据状态的处理都在同一个服务和数据库中,而具有ACID特性的数据库支持强一致性,就是说数据库本身是不会出现不一致的状态的,比如我们常用的关系型数据库MySQL就是通过多版本控制协议(MVCC)的实现来保证了强一致性。 n但是随着互联网的发展,用户增多&服务也越来越多越来越复杂,数据量和请求的并发量都上来了。为了满足这一变化,越来越多的系统从单体架构投...
分布式、集群,还有三次握手,真的很难理解吗???
        第二篇博客,我真的又在这个点起来写了!舍友们还在呼呼大睡呢。。。。。        用萝卜白菜这种寻常人都熟悉的知识把原子弹原理讲明白的都是牛人。用一堆名词把你忽悠晕的人可能什么都不懂。听了这话很有启发。回想了我学习中遇到过的用萝卜白菜,把一些计算机高深技术简要概括的说法,能看到这些牛人的分享真是一种境界的提高啊。自己总结一下,分享出来。以供大家日后有机会装的像个牛人的时候用。  ...
【抗击高并发】分布式系统架构 之 Nginx部署及应用
Nginx概念Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。轻量级:从代码角度看:实现代码时,代码设计耦合性低;轻量化:spring-core核心...
分布式系统漫谈【拾贰】_分库分表带来的问题和解决方案
当系统数据库达到一定的量级,单数据库实例已经无法支撑的时候,我们就要考虑采用分库分表的策略了。如何理解这个名词?其实分库就是垂直拆分,按业务将数据拆分到不同数据库;分表就是水平拆分,将同一业务的数据拆到不同的表中(可能也位于不同数据库,但表结构是一样的)。nnn那么进行数据分库分表后会带来哪些影响呢?
分布式系统常见问题总结(三)- 一致性协议和算法
1.一致性协议和算法nnn2PC协议:nnn两阶段提交协议nnn3PC协议:nnnPaxos算法:nnnZAP协议:nnn2.远程通信
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java分布式系统学习 学习java分布式系统