免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3242 | 回复: 0
打印 上一主题 下一主题

关于一个负载均衡的设计问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-08 22:17 |只看该作者 |倒序浏览
最近要搞一个负载均衡,看了下ipvs 的介绍:但是非常遗憾,ipvs只是做了IP层的负载均衡,无法做到基于URL的负载。\r\n\r\n我找了,网上都推荐ipvs+nginx来完成基于url的负载均衡。\r\n\r\n自己总结了一下:大概是一下的模式:\r\n\r\n    一台做做 IPVS的机器(或者加一台备份机器)=====》多台装有nginx的机器(做方向代理)==》N台web服务器\r\n\r\n听网上说:IPVS只做ip层的解析,效率应该不成问题。而对于nginx,需要做应用层协议的解析(找到相应的URL,hostname等),效率要低些,听说一般的机器能承受2-3W个链接。下面是就web服务器,这里暂时不讨论。\r\n\r\n我没看过nginx的源码,但是大概了解了下,估计就是一种数据转发,这种基于应用层的数据转发,效率都会有问题,应为一个有内容的链接都要经过两次的内核空间与用户空间的切换。这样一来效率就有所下降了。\r\n\r\n我在想,能不能把nginx的这层的数据转发也做到内核空间里面去。\r\n例如:当一台机器接受到从IPVS 转发过来的包的时候,通过SKB直接读取到应用层的数据,在根据这些内容做相应的转发,这在netfilter里面应该可以实现吧?\r\n\r\n对于上面的内容我想做一些效率的优化:\r\n\r\n1.只对某种端口的链接进行处理(例如HTTP等)。\r\n\r\n2.做一个hash表,记录连接的5元组等信息,这条连接在hash 表里面保存一段的时间。例如一个链接来了,马上对这个链接进行hash查找,如果在hash表里面,直接转发到相应的机器,以免过多的过滤而影响效率。\r\n\r\n\r\n这样一样来,就可以不用nginx 了,我感觉这样的效率应该要高于实现与用户空间的nginx.\r\n\r\n大家来看看我这样设计有没有价值,我没搞过,只是随便想想的。希望大家来一起讨论下这个实现的一些问题。或者说市面上有没有相关的开源产品。\r\n\r\nPS:希望斑竹手下留情,不要把我的帖子转载到其他板块去,这里人气足一些,牛人也特别多。例如pro阿姨等
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP