百科狗-知识改变命运!
--

haproxy和nginx哪个做负载均衡好点

一语惊醒梦中人1年前 (2023-12-15)阅读数 4#综合百科
文章标签节点负载均衡

haproxy 专门是做这个的。 nginx是附带做这个,功能比较多。 HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会...

RabbitMQ 镜像集群 宕机恢复、负载均衡、跨机房多活

1. 基本功要扎实

学习任何一种语言,必备的基本功是必须要有的,一方面可以提高效率,另一方面可以拓宽思路。

对于Linux基本知识的学习,对一些初学者来说是枯燥乏味的,可以通过理解再背诵的方式先进行代码及语法的学习,然后进行实践操作,必须手动输入命令行,不要借助工具,这样可以更快速有效的掌握Linux。

2. 学以致用

Linux学习的目的是应用,Linux基本知识是一些零散的技术,当没有应用在项目上时,我们无法理解他的真实价值,所以打好基本功之后,最紧迫的是多做几个完整的项目,刚开始可以是功能简单的项目,之后可以选择稍微复杂的项目,勤于动手,敢于实践,一定能学好Linux。

3. 学会使用Linux联机帮助

任何一种教材都不会完全讲述Linux知识,一般讲的都是比较常用的或者是比较有代表性的知识,但是,我们在项目应用中往往有些功能的实现是需要一些生僻知识和技能的,那么,如何查找我们所需的知识呢,推荐查阅Linux帮助文档,主流的Linux都自带详细的帮助文档,很方便解决问题!

4. 在网上找资源

在Linux的学习和应用中,难免会遇到一些没有思路、不知道如何解决的问题,这时就要借助网络力量,可以通过搜索引擎搜索查找,也可以咨询资深技术人员,最终实现问题的解决,这是Linux知识积累的一个重要的途径!

5. 查阅英文技术文档

如果想深入学习Linux,查阅英文技术文档是十分必要的,往往最新的技术都是采用英文文档的方式发布的,而且更全面,因此,对于Linux人员来说,多看一些Linux技术文档,对于掌握前沿技术和加深知识是十分有必要的!

Linux学习是一个需要长期坚持不懈的过程,新的技术不断的产生,要想成为Linux大牛,必须要时刻关注Linux发展动态,掌握最新技术,才能走在行业前列!

起因:在实际项目开发过程中,需要使用RabbitMQ来实现消息队列的功能,但仅仅实现功能之后并不能对自己满足,既然学一次,就要更深的了解她,吃一吃架构方面的相关内容,提升自己。

RabbitMQ在镜像集群中,机器其实是平行关系,所有的节点都是互相复制的

场景描述:

A是Master

B是Slave

A正常运行,B宕机了,只需要启动B即可,B就会自动加入集群

A和B都宕机了,只要A在B之前启动就可以了

A和B都宕机了,A启动不起来了,即便是B启动了,有可以B直接启动不了啦

B和C都加入了A为Master的集群,这个时候都需要将B和C从A的集群中forget,B和C启动不起来了

RabbitMQv3.2版本以后提供了一个离线清除集群节点的命令参数,也就是节点无法启动状态下

HAProxy是一款提供高可用的负载均衡器(之前大家都是使用的Nginx居多,upstream反向代理实现负载均衡非常容易),HAProxy可以基于TCP四层(Lvs也是TCP四层的),HTTP七层(Nginx是HTTP七层)的负载均衡应用代理软件,免费高速可靠的一种LBS解决方案

HAProxy的并发连接完全可以支持以万为单位的

Nginx

优点:

1、工作在网络7层之上,可针对http应用做一些分流的策略,如针对域名、目录结构,它的正规规则比HAProxy更为强大和灵活,所以,目前为止广泛流行。

2、Nginx对网络稳定性的依赖非常小,理论上能ping通就能进行负载功能。

3、Nginx安装与配置比较简单,测试也比较方便,基本能把错误日志打印出来。

4、可以承担高负载压力且稳定,硬件不差的情况下一般能支撑几万次的并发量。

5、Nginx可以通过端口检测到服务器内部的故障,如根据服务器处理网页返回的状态码、超时等,并会把返回错误的请求重新提交到另一个节点。

6、不仅仅是优秀的负载均衡器/反向代理软件,同时也是强大的Web应用服务器。可作为静态网页和服务器,在高流量环境中稳定性也很好。

7、可作为中层反向代理使用。

缺点:

1、适应范围较小,仅能支持http、https、Email协议。

2、对后端服务器的健康检查,只支持通过端口检测,不支持url来检测

3、负载均衡策略比较少:轮询、权重、IP_hash、url_hash

HAProxy

优点:

1、HAProxy是支持虚拟主机的,可以工作在4、7层(支持多网段)

2、HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。

3、HAProxy跟LVS类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。

4、HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡。

5、HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有如下8种

缺点:

1、不支持POP/SMTP协议

2、不支持SPDY协议

3、不支持HTTP cache功能。现在不少开源的lb项目,都或多或少具备HTTP cache功能。

4、重载配置的功能需要重启进程,虽然也是soft restart,但没有Nginx的reaload更为平滑和友好。

5、多进程模式支持不够好

HAProxy+Keepalived(负载均衡节点的高可用)

将上面的配置文件内容放入 /etc/haproxy/haproxy.cfg中

启动HAProxy

启用成功后可以到控制台进行验证

通过federation的配置来进行数据通道搭建

这个时候你需要自己定义一个上游节点upstream(166节点),一个下游节点downstream(167节点),federation是单向发送的,相当于消息发送到upstream的一个exchange上,然后转发到downstream的queue上

1、 在下游节点创建一个exchage和一个queue和binding的routingkey,用来进行数据接收

haproxy和nginx哪个做负载均衡好点

2、 在下游节点建立federation upstream规则和上游节点进行数据同步

3、 进入下游节点的federation status没有任何数据,需要建立策略来保证通道连通

4、 进入下游节点的Policy菜单,Pattern是个正则表达式,这里表示以down开头的exchange和queue都匹配

5、 这个时候看exchange和queue,规则就应用上了

6、 这个时候去federation status看,发现上游连接已经连接上了

7、 这个时候我们先去看上游的overview

8、 再看上游的exchange和queue就已经根据下游配置的upstream和policy规则将exchange和queue创建好了

灰色的这个重定向exchange不能发送消息,如果要发送则在down-exchange上进行发送

9、 我们在上游的down-exchange发送一条消息,进行测试

可以在下游查看这条消息

10、 因为上游及节点只是一个中转,如果上游及诶单也要消息down-exchange里的消息怎么办?

只需要在本地建立一个binding关系就好

不要以为每天把功能完成了就行了,这种思想是要不得的,互勉~!

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)