HAProxy的四层负载均衡
红薯:haproxy支持四层的负载均衡。懂的童鞋可否分析一下4层的负载均衡实现原理呢?最好有代码的例子。有haproxy的源码分析更好啊!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
红薯:haproxy支持四层的负载均衡。懂的童鞋可否分析一下4层的负载均衡实现原理呢?最好有代码的例子。有haproxy的源码分析更好啊!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
首先,HAPROXY的原理是这样的
|------------------
客户端的读____| |--------服务器的写
客户端的写___| |--------服务器的读
|------------------|
客户端连接到haproxy后,haproxy创建一个会话,左边填写客户端的信息
那么问题来了,右边服务器怎么办?采用负载均衡从N个服务器选择一个
connect选中的服务器,然后把这个服务器的信息写在会话的右边。
准备工作做好后,左边从客户单接收到啥,就写到右边的服务器。
---
由于在选择右边的服务器时,采用了负载均衡算法,所以实现了分流。
对于通过会话的内容,不需要干预,那就是TCP模式
如果需要干预,常用于HTTP模式,那就是在发送给右边的服务器之间
自己把内存里的内容重新组织一下,BALABALA.
理论上没啥难度,但是要考虑到各种异常,
比如左边的连接断了,后边的服务器宕机了
对这个会话有什么影响之类的。
我看了点源码,远没有redis的代码写的简练,就放弃了。
haproxy的代码写得真是,无力吐槽。