linux负载均衡
来源:互联网 发布:信鸽推送demo php 编辑:程序博客网 时间:2024/04/27 17:36
1.载均衡可以分为基于流的和基于包的,基于流的实现更合理但是有的时候必须需要基于包的,只可惜,linux内核并没有很好的实现基于包的负载均衡。2.6早期的内核实现了一个multipath的机制,可以认为是一个负载均衡器,但是它却是基于fib的,可以认为是基于流的,因为每一个流的第一个包从cache中或者fib中查找到路由后项后就会cache起来
2.6.18内核,内核增加了一个预编译宏--CONFIG_IP_ROUTE_MULTIPATH_CACHED,看起来支持了cache路由的负载均衡,然后查一下代码:
static inline int multipath_select_route(const struct flowi*flp,
在2.6.25内核中它就不见了踪影
2.基于流的负载均衡实际上linux已经实现了,这就是multipath,也就是2.6.8内核中就已经存在的那种,一个流的源IP,目的IP都是一样的,因此该流使用一个路由cache项,而另一个流由于和第一个流的源不同,因此只能查找fib,得到对应同一个目的地址的另一个路由表项,但是如果同一台机器发起了到同一个目的地的多个流,linux仍然不会做负载均衡,linux会认为那是一个流,毕竟在IP层是认不到传输层协议和端口的。因此linux实现的基于流的负载均衡仅仅是一种粗粒度的基于主机的负载均衡,要想实现真的基于流的负载均衡,还要使用ip_conntrack模块,但是这样就涉及到了四层信息,比较耗时.最终的结论就是linux的负载均衡几乎没有实现. (非NAT环境)可以把同一条TCP/IP连接中的IP包同时从两条上行连接中发出,左右开弓,不就可以了吗?实际上,我们在 PPP Multilink就是这么干的,不过现在没有服务器的支持,要靠自己。这是Internet,因此已经有人想到这一点并且编写了内核补丁供下载,请搜索equalize_2.4.18.patch。 需要特别提醒你的是,请确保该补丁的日期是 Fri Mar 22 2002,而不是有问题的 Thu Mar 21 2002版本。另外,根据我的经验,这个 patch 也可以用于 2.4.19 内核。
- Linux负载均衡视频
- Linux 负载均衡
- Linux 负载均衡
- Linux负载均衡
- Linux中断负载均衡
- Linux Nginx负载均衡
- Linux SMP负载均衡
- linux 负载均衡
- linux负载均衡
- linux负载均衡
- linux负载均衡
- Linux Nginx负载均衡
- Linux实现负载均衡
- linux cfs负载均衡
- Linux 负载均衡 LVS
- linux lvs 负载均衡
- linux负载均衡总结
- linux 集群负载均衡技术
- Kafka到Storm
- 在Android项目中,遇到过的坑
- HashMap排序
- [kipmi0]进程导致系统负载高
- 详解QuickCocos2dX状态机模式设计
- linux负载均衡
- Maven学习总结(17)——深入理解maven灵活的构建
- 虚拟机Linux c++调用Python脚本的实现
- 如何停止Monkey测试
- HTML5 - 用Modernizr检测浏览器对表单和表单验证的支持情况
- 协程
- Concurrency Is Not Parallelism
- Android Studio如何集成Genymotion
- 包、访问修饰符