1
9hills 2014 年 4 月 4 日 via iPad
你这个逻辑很简单。用高级语言很容易实现。
做个原型,然后性能测试比对。建议用Golang |
2
G2bN4dbX9J3ncp0r 2014 年 4 月 4 日
nginx 不是自带负载均衡吗?后端可以用riak
|
3
ETiV 2014 年 4 月 4 日 via iPhone
请求分发的判定条件写在 http 头里,就不用从二进制里解一次了
|
4
aszxqw 2014 年 4 月 4 日
要高性能的话,思路2其实还好,c/c++使用libevent应该还不错。libevent连http协议解析的东西也帮你做好了。
目测似乎nodejs非常满足你的需求吧。 |
5
raptor 2014 年 4 月 5 日
用C/C++写个nginx扩展模块应该不错
|
6
luckyduck 2014 年 4 月 5 日
这个性能更好吧~
http://haproxy.1wt.eu/ |
7
Comdex 2014 年 4 月 5 日 via Android
golang应该可以吧
|
8
Actrace 2014 年 4 月 5 日
nginx就可以了
|
9
pubby 2014 年 4 月 5 日
不太清楚“解二进制”的计算量。
可以先用熟悉的技术写一个dispatch测试一下 clients -> dispatch -> web servers 如果一个dispatch不够,就部署多个 clients -> nginx -> dispatch(s) -> web servers |
11
guotie 2014 年 4 月 5 日
golang, 几百行代码就搞定了
|
12
missdeer 2014 年 4 月 5 日
用C++不如用golang
|
13
yakczh 2014 年 4 月 5 日 第一次给客户端写个cookie,下次请求过来直接取出http头,做相应的转发,用nodejs就几行代码就搞定了 这种场景应该才是nodejs能派上用场的地方,可惜很多人都在用nodejs在那里绕圈圈地查数据库写数据库 只是为了证明"我能,我行"
|
14
julyclyde 2014 年 4 月 5 日
这个设计是错的
往哪儿分发应该纯粹由URL决定,而不涉及body |
15
yueyoum OP 回ls各位,其实这是一个手游项目,通信用了http协议。 server会生成一个game session 给 client 。client 只要带着这个session 就行。一切对 client都是透明的,并且万一客户端不接受cookie 那怎么办?
所以放弃 cookie headers 的方式 nodejs 我看看 |
16
cnbuff410 2014 年 4 月 6 日 via Android
你要想开发快,性能足够高,那就上Go吧
|
17
leofml 2014 年 4 月 6 日 via iPad
这种需求我也做过类似的,用go或者nodejs或者nginx实现起来其实基本不难。
用nginx+lua其实就是使用ngx.capture做一个子请求就能搞定。 实际测试中可以看出还是nginx性能好,占内存低。 |
18
panlilu 2014 年 4 月 6 日
nginx+lua 应该靠谱
|
19
hmaimi 2014 年 4 月 7 日
我自己做的项目前段时间也有一个这样的需求,我用nginx_lua解决的
感觉效率很不错,编码成本也低 |
20
julyclyde 2014 年 4 月 7 日
@yueyoum 在现代,想找个不支持cookie的浏览器还真难。实在不行还可以把sessionID放到querystring里。在body里加这个绝对是错误设计,将来会付出惨重代价
|
21
halfbloodrock 2014 年 4 月 7 日
可能我理解不太准确, 但是从LZ说 "所有请求达到入口,入口解析发来的数据,根据消息本身或者解开的内容决定将这个请求转发给哪个后端 web server " 这个需求, 其实应该就是负载均衡的7层负载均衡.
|