b*******s 发帖数: 5216 | 1 怎么设计票,怎么分布,怎么同步,性能怎么估算等等
几个著名互联网公司的也可以参与一下加以完善
是个向你们学习的好机会 |
z****e 发帖数: 54598 | 2 你先把二爷三个月前的帖子看看再说吧
古德霸都说烂掉了
实在不行,看看1989那个id的文章也行啊
翻来覆去的说,你不烦,我都烦啊 |
b*******s 发帖数: 5216 | 3 就那个方案啊,呵呵呵
你先把二爷三个月前的帖子看看再说吧
古德霸都说烂掉了
实在不行,看看1989那个id的文章也行啊
翻来覆去的说,你不烦,我都烦啊
【在 z****e 的大作中提到】 : 你先把二爷三个月前的帖子看看再说吧 : 古德霸都说烂掉了 : 实在不行,看看1989那个id的文章也行啊 : 翻来覆去的说,你不烦,我都烦啊
|
g*****g 发帖数: 34805 | 4 我记得当时你也参与讨论的,莫非我记错了。
http://www.mitbbs.com/article/Programming/31281349_0.html
【在 b*******s 的大作中提到】 : 怎么设计票,怎么分布,怎么同步,性能怎么估算等等 : 几个著名互联网公司的也可以参与一下加以完善 : 是个向你们学习的好机会
|
z****e 发帖数: 54598 | 5 呵什么呀,少装了
人家可靠多了
至少比计数器那是要强到不知道哪里去了
我都不好意思说出来,用计数器的话
骗人死全家
【在 b*******s 的大作中提到】 : 就那个方案啊,呵呵呵 : : 你先把二爷三个月前的帖子看看再说吧 : 古德霸都说烂掉了 : 实在不行,看看1989那个id的文章也行啊 : 翻来覆去的说,你不烦,我都烦啊
|
g*****g 发帖数: 34805 | 6 我记得当时无数人质问了无数细节,最后绝大部分人同意架构是可行的,有人不满意出
票有延迟罢了。我这个东西不是宇宙最强,就是能用而已。需要妥协的地方我也开篇就
说,不需要吹得天下无敌,到头来连个计数器都要别人给打补丁。
【在 b*******s 的大作中提到】 : 就那个方案啊,呵呵呵 : : 你先把二爷三个月前的帖子看看再说吧 : 古德霸都说烂掉了 : 实在不行,看看1989那个id的文章也行啊 : 翻来覆去的说,你不烦,我都烦啊
|
b*******s 发帖数: 5216 | |
n*****t 发帖数: 22014 | 8 能用啥啊,现 12306 峰值 26K,你连这指标都达不到,玩闹啊
【在 g*****g 的大作中提到】 : 我记得当时无数人质问了无数细节,最后绝大部分人同意架构是可行的,有人不满意出 : 票有延迟罢了。我这个东西不是宇宙最强,就是能用而已。需要妥协的地方我也开篇就 : 说,不需要吹得天下无敌,到头来连个计数器都要别人给打补丁。
|
l*****9 发帖数: 9501 | 9 峰值有个鸟关系,不丢单,公平,克黄牛,比现在的12306丢单无数强多了
【在 n*****t 的大作中提到】 : 能用啥啊,现 12306 峰值 26K,你连这指标都达不到,玩闹啊
|
g*****g 发帖数: 34805 | 10 我那是系统要求低,不是说最多10k。再说了,一天8分钟票就能出完,网站不当,不比
刷一天票都连不上强?
【在 n*****t 的大作中提到】 : 能用啥啊,现 12306 峰值 26K,你连这指标都达不到,玩闹啊
|
|
|
b*******s 发帖数: 5216 | 11 嗯,你是基本把可用性放在最高优先级了,基本放弃了实时性,假定用户可以忍受长时
间得不到结果,具体多长我们可以分析一下
后台先分析你不做并发,前台目前是高峰1秒100k-200k的requests,假定你的前台都
撑住了,接下了所有单子,然后后台一个单线程不用任何锁进行顺序处理。12306在走
全内存数据库前的数据是比现在慢75倍,现在是一个查询70-80ms,假定这一秒是100k
单子,按照顺序处理,全部处理完是70-80分钟,也就是在高峰下单的用户,最多要等
那么久。
你觉得这是个可以接受的结果?
【在 g*****g 的大作中提到】 : 我那是系统要求低,不是说最多10k。再说了,一天8分钟票就能出完,网站不当,不比 : 刷一天票都连不上强?
|
b*******s 发帖数: 5216 | 12 如果我是用户,我肯定会拼命点提交button,这样这个系统会产生多少新订单呢?
100k
【在 b*******s 的大作中提到】 : 嗯,你是基本把可用性放在最高优先级了,基本放弃了实时性,假定用户可以忍受长时 : 间得不到结果,具体多长我们可以分析一下 : 后台先分析你不做并发,前台目前是高峰1秒100k-200k的requests,假定你的前台都 : 撑住了,接下了所有单子,然后后台一个单线程不用任何锁进行顺序处理。12306在走 : 全内存数据库前的数据是比现在慢75倍,现在是一个查询70-80ms,假定这一秒是100k : 单子,按照顺序处理,全部处理完是70-80分钟,也就是在高峰下单的用户,最多要等 : 那么久。 : 你觉得这是个可以接受的结果?
|
z*******3 发帖数: 13709 | 13 你是没走过春运吗?
以前民工通宵排队
一夜风流,就为了那几张票
等个60分钟就吃不消了?
谁告诉你的?
100k
【在 b*******s 的大作中提到】 : 嗯,你是基本把可用性放在最高优先级了,基本放弃了实时性,假定用户可以忍受长时 : 间得不到结果,具体多长我们可以分析一下 : 后台先分析你不做并发,前台目前是高峰1秒100k-200k的requests,假定你的前台都 : 撑住了,接下了所有单子,然后后台一个单线程不用任何锁进行顺序处理。12306在走 : 全内存数据库前的数据是比现在慢75倍,现在是一个查询70-80ms,假定这一秒是100k : 单子,按照顺序处理,全部处理完是70-80分钟,也就是在高峰下单的用户,最多要等 : 那么久。 : 你觉得这是个可以接受的结果?
|
z*******3 发帖数: 13709 | 14 根据身份证做一个筛选就行了
取最前面的那个req,剩下相同的订单全部丢弃
同一个ip地址在一分钟内不准多次发送请求
这个你应该看看老魏注册机在做啥
想明白怎么对付老魏的注册机,就知道怎么对付多次发送的请求了
都做烂了
【在 b*******s 的大作中提到】 : 如果我是用户,我肯定会拼命点提交button,这样这个系统会产生多少新订单呢? : : 100k
|
b*******s 发帖数: 5216 | 15 你的10k系统,说实话,也就非春运期间用用
如果要实用化,你得给出如何面对每秒100-200k订单的设计
【在 g*****g 的大作中提到】 : 我那是系统要求低,不是说最多10k。再说了,一天8分钟票就能出完,网站不当,不比 : 刷一天票都连不上强?
|
z*******3 发帖数: 13709 | 16 爆web instances
太容易了
正常人都这个思路
爆网卡才算是奇芭
【在 n*****t 的大作中提到】 : 能用啥啊,现 12306 峰值 26K,你连这指标都达不到,玩闹啊
|
z*******3 发帖数: 13709 | 17 爆instances
【在 b*******s 的大作中提到】 : 你的10k系统,说实话,也就非春运期间用用 : 如果要实用化,你得给出如何面对每秒100-200k订单的设计
|
z*******3 发帖数: 13709 | 18 你是对的
给他们好好上上课
后生可畏啊
【在 l*****9 的大作中提到】 : 峰值有个鸟关系,不丢单,公平,克黄牛,比现在的12306丢单无数强多了
|
b*******s 发帖数: 5216 | 19 就是,点了一下button,然后80分钟内改订单什么都不行
好牛的设计,就跟你电视选了个台,然后80分钟不允许你换台
果然全堆无敌
【在 z*******3 的大作中提到】 : 根据身份证做一个筛选就行了 : 取最前面的那个req,剩下相同的订单全部丢弃 : 同一个ip地址在一分钟内不准多次发送请求 : 这个你应该看看老魏注册机在做啥 : 想明白怎么对付老魏的注册机,就知道怎么对付多次发送的请求了 : 都做烂了
|
b*******s 发帖数: 5216 | 20 同步问题就出来了,这是你们排队所力图避免的
【在 z*******3 的大作中提到】 : 爆instances
|
|
|
n*****t 发帖数: 22014 | 21 60 分钟能拿到票也就算了,拿不到我换个车次还得重新排队,这是搞哪样啊?
【在 z*******3 的大作中提到】 : 你是没走过春运吗? : 以前民工通宵排队 : 一夜风流,就为了那几张票 : 等个60分钟就吃不消了? : 谁告诉你的? : : 100k
|
z*******3 发帖数: 13709 | 22 下订单异步处理,解决峰值时候拥堵的问题
这么简单的思路,三个月了还理解不了
我的天
你定火车票经常改吗?常识
ok?
【在 b*******s 的大作中提到】 : 就是,点了一下button,然后80分钟内改订单什么都不行 : 好牛的设计,就跟你电视选了个台,然后80分钟不允许你换台 : 果然全堆无敌
|
n*****t 发帖数: 22014 | 23 哥,现在黄牛都撰着一把身份证捏
【在 z*******3 的大作中提到】 : 根据身份证做一个筛选就行了 : 取最前面的那个req,剩下相同的订单全部丢弃 : 同一个ip地址在一分钟内不准多次发送请求 : 这个你应该看看老魏注册机在做啥 : 想明白怎么对付老魏的注册机,就知道怎么对付多次发送的请求了 : 都做烂了
|
b*******s 发帖数: 5216 | 24 古德霸的设计,如果回避了后端并发,加上赵全堆的补丁
就是死机80分钟的表现
【在 n*****t 的大作中提到】 : 60 分钟能拿到票也就算了,拿不到我换个车次还得重新排队,这是搞哪样啊?
|
b*******s 发帖数: 5216 | 25 如果80分钟没反应,期间我可不是你那种自high的乖孩子
【在 z*******3 的大作中提到】 : 下订单异步处理,解决峰值时候拥堵的问题 : 这么简单的思路,三个月了还理解不了 : 我的天 : 你定火车票经常改吗?常识 : ok?
|
z*******3 发帖数: 13709 | 26 只接单,不用实时处理
然后汇总,随便做
接单时候爆instances
有多少吃多少,每个req做一个时间戳
最后筛掉之后,按照时间戳排序
很难么?
mongodb做内存管理的,可以帮忙
当然我们一般用c*
【在 b*******s 的大作中提到】 : 同步问题就出来了,这是你们排队所力图避免的
|
b*******s 发帖数: 5216 | 27 最多10k我相信你绝对没问题,问题是你和需求似乎不是很相关
【在 g*****g 的大作中提到】 : 我那是系统要求低,不是说最多10k。再说了,一天8分钟票就能出完,网站不当,不比 : 刷一天票都连不上强?
|
z*******3 发帖数: 13709 | 28 同一车次,如果满了,自然就没票了
你还排啥?这就跟高考一样,你第一次考不好,明天继续考?
那谁不考?对付稀缺资源,这一套就只有这样了
【在 n*****t 的大作中提到】 : 60 分钟能拿到票也就算了,拿不到我换个车次还得重新排队,这是搞哪样啊?
|
b*******s 发帖数: 5216 | 29 我的质疑不在接单能力
【在 z*******3 的大作中提到】 : 只接单,不用实时处理 : 然后汇总,随便做 : 接单时候爆instances : 有多少吃多少,每个req做一个时间戳 : 最后筛掉之后,按照时间戳排序 : 很难么? : mongodb做内存管理的,可以帮忙 : 当然我们一般用c*
|
n*****t 发帖数: 22014 | 30 异步处理本来就是奇葩,比现在的系统都不如,你干脆撤掉网站让居委会大妈登记叫号
得了
【在 z*******3 的大作中提到】 : 下订单异步处理,解决峰值时候拥堵的问题 : 这么简单的思路,三个月了还理解不了 : 我的天 : 你定火车票经常改吗?常识 : ok?
|
|
|
z*******3 发帖数: 13709 | 31 黄牛未必有你快啊,而且你以为你做了real time
人家就不上了?人家还黑了一堆肉鸡冲你同时发请求呢
【在 n*****t 的大作中提到】 : 哥,现在黄牛都撰着一把身份证捏
|
z*******3 发帖数: 13709 | 32 时间戳
【在 b*******s 的大作中提到】 : 我的质疑不在接单能力
|
b*******s 发帖数: 5216 | 33 如果你敲一下键盘,60分钟屏幕上有反馈,这叫?
【在 z*******3 的大作中提到】 : 同一车次,如果满了,自然就没票了 : 你还排啥?这就跟高考一样,你第一次考不好,明天继续考? : 那谁不考?对付稀缺资源,这一套就只有这样了
|
z*******3 发帖数: 13709 | 34 再奇芭也不能跟老魏的网卡做异步比
那简直就不是奇芭,而是搞笑了
【在 n*****t 的大作中提到】 : 异步处理本来就是奇葩,比现在的系统都不如,你干脆撤掉网站让居委会大妈登记叫号 : 得了
|
n*****t 发帖数: 22014 | 35 我有 12 个车次选择,我还想跟相好的一起走,你能不能告诉我哪些车有票先啊,尼玛
不能连窗口卖票还不如吧
【在 z*******3 的大作中提到】 : 同一车次,如果满了,自然就没票了 : 你还排啥?这就跟高考一样,你第一次考不好,明天继续考? : 那谁不考?对付稀缺资源,这一套就只有这样了
|
z*******3 发帖数: 13709 | 36 哎哟我的妈哟
天哪,有人是真不懂啊
二爷我败了,真败了
【在 b*******s 的大作中提到】 : 如果你敲一下键盘,60分钟屏幕上有反馈,这叫?
|
b*******s 发帖数: 5216 | 37 你又没看懂,我靠
【在 z*******3 的大作中提到】 : 时间戳
|
b*******s 发帖数: 5216 | 38 没错,比窗口卖票还不如
【在 n*****t 的大作中提到】 : 我有 12 个车次选择,我还想跟相好的一起走,你能不能告诉我哪些车有票先啊,尼玛 : 不能连窗口卖票还不如吧
|
n*****t 发帖数: 22014 | 39 所以啥狗屁能挡黄牛就是笑话,不提也罢
【在 z*******3 的大作中提到】 : 黄牛未必有你快啊,而且你以为你做了real time : 人家就不上了?人家还黑了一堆肉鸡冲你同时发请求呢
|
z*******3 发帖数: 13709 | 40 时间戳了
那你还能怎样?
窗口票和网络定票配额分开了
这个要凑一起,基本上窗口没票卖了
不过现在窗口也没啥票可卖
【在 n*****t 的大作中提到】 : 我有 12 个车次选择,我还想跟相好的一起走,你能不能告诉我哪些车有票先啊,尼玛 : 不能连窗口卖票还不如吧
|
|
|
b*******s 发帖数: 5216 | 41 呵呵,你可以改名叫西方失败了
【在 z*******3 的大作中提到】 : 哎哟我的妈哟 : 天哪,有人是真不懂啊 : 二爷我败了,真败了
|
z*******3 发帖数: 13709 | 42 我哭了
异步对于你来说实在是太难了
你们c++程序员不是第一次有人这样犯傻了
啧啧,还是学js吧,java太复杂了
【在 b*******s 的大作中提到】 : 呵呵,你可以改名叫西方失败了
|
n*****t 发帖数: 22014 | 43 老魏那网卡也就几千刀,有啥毛病了?
【在 z*******3 的大作中提到】 : 再奇芭也不能跟老魏的网卡做异步比 : 那简直就不是奇芭,而是搞笑了
|
z*******3 发帖数: 13709 | 44 我看懂了,这次是真看懂了
我不骗人,等其它人来教育你
我败北了
【在 b*******s 的大作中提到】 : 你又没看懂,我靠
|
n*****t 发帖数: 22014 | 45 我不管你那红戳还是白戳,我就想问哪些车有票,我得跟相好的打个电话
【在 z*******3 的大作中提到】 : 时间戳了 : 那你还能怎样? : 窗口票和网络定票配额分开了 : 这个要凑一起,基本上窗口没票卖了 : 不过现在窗口也没啥票可卖
|
z*******3 发帖数: 13709 | 46 顶多说是,能跟黄牛在同一时间段内竞争
还有就是网站别挂了,你再看看1989那孩子说的
【在 n*****t 的大作中提到】 : 所以啥狗屁能挡黄牛就是笑话,不提也罢
|
z*******3 发帖数: 13709 | 47 换网卡这种硬件是属于不elasticity的策略
【在 n*****t 的大作中提到】 : 老魏那网卡也就几千刀,有啥毛病了?
|
b*******s 发帖数: 5216 | 48 我算的80ms一个锁票,高峰一秒100k-200k请求,导致这一秒内有些用户要80分钟才知
道订上了没有,你怎么看
设想你到窗口买票,售票员对你说,请等80分钟,然后我告诉你买上了没哦,亲
【在 z*******3 的大作中提到】 : 我哭了 : 异步对于你来说实在是太难了 : 你们c++程序员不是第一次有人这样犯傻了 : 啧啧,还是学js吧,java太复杂了
|
b*******s 发帖数: 5216 | 49 当然,我已经想好补丁了
【在 b*******s 的大作中提到】 : 我算的80ms一个锁票,高峰一秒100k-200k请求,导致这一秒内有些用户要80分钟才知 : 道订上了没有,你怎么看 : 设想你到窗口买票,售票员对你说,请等80分钟,然后我告诉你买上了没哦,亲
|
n*****t 发帖数: 22014 | 50 那不结了,跟计数器一样,一起竞争。网站挂了更是伪科学了,但凡这种系统,肯定一
堆协议,神马定时、心跳、热备份、组播,等等等等,谁要没想到当鸡就敢上,谁就是
泡咖啡的
【在 z*******3 的大作中提到】 : 顶多说是,能跟黄牛在同一时间段内竞争 : 还有就是网站别挂了,你再看看1989那孩子说的
|
|
|
z*******3 发帖数: 13709 | 51 你说的不是这个,哈哈
【在 b*******s 的大作中提到】 : 我算的80ms一个锁票,高峰一秒100k-200k请求,导致这一秒内有些用户要80分钟才知 : 道订上了没有,你怎么看 : 设想你到窗口买票,售票员对你说,请等80分钟,然后我告诉你买上了没哦,亲
|
n*****t 发帖数: 22014 | 52 扯,还有更高大上的 fancy 玩意呢,而且,如果只做 1M/s which is 10X faster
then urs,我估摸 wifi 都够了
【在 z*******3 的大作中提到】 : 换网卡这种硬件是属于不elasticity的策略
|
b*******s 发帖数: 5216 | 53 嗯,我以为你说的时间戳是用来解决这个问题的了
有时帖子会看窜掉
【在 z*******3 的大作中提到】 : 你说的不是这个,哈哈
|
z*******3 发帖数: 13709 | 54 一起竞争没有错,但是用网卡来排队,那是很神奇的一件事
至少我没听说有谁这么干的
【在 n*****t 的大作中提到】 : 那不结了,跟计数器一样,一起竞争。网站挂了更是伪科学了,但凡这种系统,肯定一 : 堆协议,神马定时、心跳、热备份、组播,等等等等,谁要没想到当鸡就敢上,谁就是 : 泡咖啡的
|
z*******3 发帖数: 13709 | 55 装,继续装
哈哈
发信人: brainless (n/a), 信区: Programming
标 题: Re: 古德霸放个带细节设计的方案吧
发信站: BBS 未名空间站 (Wed Feb 5 20:40:51 2014, 美东)
如果你敲一下键盘,60分钟屏幕上有反馈,这叫?
【在 b*******s 的大作中提到】 : 嗯,我以为你说的时间戳是用来解决这个问题的了 : 有时帖子会看窜掉
|
z*******3 发帖数: 13709 | 56 正常人不会让网卡做一些逻辑上的处理
所有逻辑处理要集中到一个地方去做
基本上都要自己写代码,然后tune
而不是依赖网卡这种东西
【在 n*****t 的大作中提到】 : 扯,还有更高大上的 fancy 玩意呢,而且,如果只做 1M/s which is 10X faster : then urs,我估摸 wifi 都够了
|
n*****t 发帖数: 22014 | 57 啥玩意不是排队啊,你时间戳比我牛又咋的,谁让你网络比我挫了,网卡排队本身就是
一种天然时间戳,不服不行
【在 z*******3 的大作中提到】 : 一起竞争没有错,但是用网卡来排队,那是很神奇的一件事 : 至少我没听说有谁这么干的
|
z*******3 发帖数: 13709 | 58 这还需要补丁吗?
【在 b*******s 的大作中提到】 : 当然,我已经想好补丁了
|
n*****t 发帖数: 22014 | 59 艾玛,网卡只不过 bypass kernel 了,你当那玩意能出票出冰激凌咋的?
【在 z*******3 的大作中提到】 : 正常人不会让网卡做一些逻辑上的处理 : 所有逻辑处理要集中到一个地方去做 : 基本上都要自己写代码,然后tune : 而不是依赖网卡这种东西
|
z*******3 发帖数: 13709 | 60 先看懂二爷最近三个月在干嘛
然后再尝试理解其它人说的方案
【在 b*******s 的大作中提到】 : 嗯,我以为你说的时间戳是用来解决这个问题的了 : 有时帖子会看窜掉
|
|
|
z*******3 发帖数: 13709 | 61 你把这种事交给了网卡
你以后要怎么搞,就很难了
听天由命,这样子是过不去压力测试的
否则我一个prototype打遍天下了
【在 n*****t 的大作中提到】 : 艾玛,网卡只不过 bypass kernel 了,你当那玩意能出票出冰激凌咋的?
|
n*****t 发帖数: 22014 | 62 我糊涂了,啥事我交给网卡了啊?莫非还能不用网卡噌一下票就飞到我内存里了?
【在 z*******3 的大作中提到】 : 你把这种事交给了网卡 : 你以后要怎么搞,就很难了 : 听天由命,这样子是过不去压力测试的 : 否则我一个prototype打遍天下了
|
z*******3 发帖数: 13709 | 63 代码在你手上,你怎么写都随便
甚至vip想插队都可以实现
但是你把这种逻辑交给了网卡
那这就是另外一回事了
再说instances很贵么?
是吧?
你网卡便宜,我instances也没贵到哪里去
又不是出不起那笔钱,你当铁老大跟你我一样叼丝?
【在 n*****t 的大作中提到】 : 啥玩意不是排队啊,你时间戳比我牛又咋的,谁让你网络比我挫了,网卡排队本身就是 : 一种天然时间戳,不服不行
|
z*******3 发帖数: 13709 | 64 领导过来拍拍你肩膀
老姜,我们都是上海人
你对上海的身份证做点优先级处理
10%的请求允许提前处理
你咋办?
【在 n*****t 的大作中提到】 : 我糊涂了,啥事我交给网卡了啊?莫非还能不用网卡噌一下票就飞到我内存里了?
|
n*****t 发帖数: 22014 | 65 我前面放个 Cache 鸡不是干部啊,你要 VIP 上那鼓捣去呗,哎 。。。
【在 z*******3 的大作中提到】 : 代码在你手上,你怎么写都随便 : 甚至vip想插队都可以实现 : 但是你把这种逻辑交给了网卡 : 那这就是另外一回事了 : 再说instances很贵么? : 是吧? : 你网卡便宜,我instances也没贵到哪里去 : 又不是出不起那笔钱,你当铁老大跟你我一样叼丝?
|
z*******3 发帖数: 13709 | 66 那是你的方案,又不是老魏的
你打的补丁而已
【在 n*****t 的大作中提到】 : 我前面放个 Cache 鸡不是干部啊,你要 VIP 上那鼓捣去呗,哎 。。。
|
z*******3 发帖数: 13709 | 67 你的cache机跟web instances差不多一个概念
总之你自己会处理一下
但是用网卡处理,是最神奇的
我下次说给同事听
【在 n*****t 的大作中提到】 : 我前面放个 Cache 鸡不是干部啊,你要 VIP 上那鼓捣去呗,哎 。。。
|
n*****t 发帖数: 22014 | 68 擦,我这个方案跟古德八吵了几个礼拜了,你骂我剽窃老魏是吧?
其实老魏的算力也是绰绰有余,协议里加个优先级轻松。管网卡的,收到请求扔队列,
打算盘的优先到 VIP 里去拿。
再说了,前段送个 message 说T1 次 all stop selling,我还能偷偷出票不成?
【在 z*******3 的大作中提到】 : 那是你的方案,又不是老魏的 : 你打的补丁而已
|
z*******3 发帖数: 13709 | 69 我的意思是,我没认真看你的方案
这到底说的是谁的方案?
我说网卡,是老魏的
【在 n*****t 的大作中提到】 : 擦,我这个方案跟古德八吵了几个礼拜了,你骂我剽窃老魏是吧? : 其实老魏的算力也是绰绰有余,协议里加个优先级轻松。管网卡的,收到请求扔队列, : 打算盘的优先到 VIP 里去拿。 : 再说了,前段送个 message 说T1 次 all stop selling,我还能偷偷出票不成?
|
n*****t 发帖数: 22014 | 70 老魏这方案你就这么想,中心节点就干一个活,抢票,其他所有逻辑都在前端。谁先抢
谁后抢,前端就可以排队了。
【在 z*******3 的大作中提到】 : 我的意思是,我没认真看你的方案 : 这到底说的是谁的方案? : 我说网卡,是老魏的
|
|
|
z*******3 发帖数: 13709 | 71 老姜你应该想明白
运算能力是一回事
分层是另外一回事
不是每一次都要把运力往死里逼的
【在 n*****t 的大作中提到】 : 擦,我这个方案跟古德八吵了几个礼拜了,你骂我剽窃老魏是吧? : 其实老魏的算力也是绰绰有余,协议里加个优先级轻松。管网卡的,收到请求扔队列, : 打算盘的优先到 VIP 里去拿。 : 再说了,前段送个 message 说T1 次 all stop selling,我还能偷偷出票不成?
|
z*******3 发帖数: 13709 | 72 还用抢么?
【在 n*****t 的大作中提到】 : 老魏这方案你就这么想,中心节点就干一个活,抢票,其他所有逻辑都在前端。谁先抢 : 谁后抢,前端就可以排队了。
|
g*****g 发帖数: 34805 | 73 没有啥长时间一说,就是几分钟。
后台我当然是做并发得,只不过是单关系数据库,用transaction来保证acid。把单子
按车次排序分队列,这个前端写单子存入得时候就做好了。后端得处理服务器是一个集
群,每次可以从cassandra批量读。另外每隔一秒从数据库里拿出个所有余票的
snapshot,cache到
各个处理服务器上。处理先跟这个cache比较,确认各段都有票,再发到数据库交易。
所以处理是并发得,如果没票的话,不用写入关系数据库,写回cassandra确认订单失
败。
尽管订单很多,峰值达到百万/秒,可用的票很少,根据新闻每天千万人次,一半
12306出,每天不过500万张。这500万张,在一台大机器上,oracle数据库,5k-10k/
秒的速度是一个常规的估计。按5k算的话,也不过1000秒,17分钟。12306其实每天是
分多个时段分票的,结果就是延迟更少,如果每天放票8次,那就是2分钟。这是数据库
的延迟。无效订单有延迟,每次处理无非是查内存里一个数组是否有0,有0就可以放弃
,单操作毫秒级的处理。。而且是多核集群并行处理,完全scale out, 订单很多可以
跟着上去保证处理速度,你觉得这部分延迟有多少?在我看是秒级别的延迟,但让你算
到1分钟也无妨,不过3分钟。就是不分时发票,也不过18分钟到头。如果能做10k 的交
易,更是10分钟以下没压力。
100k
【在 b*******s 的大作中提到】 : 嗯,你是基本把可用性放在最高优先级了,基本放弃了实时性,假定用户可以忍受长时 : 间得不到结果,具体多长我们可以分析一下 : 后台先分析你不做并发,前台目前是高峰1秒100k-200k的requests,假定你的前台都 : 撑住了,接下了所有单子,然后后台一个单线程不用任何锁进行顺序处理。12306在走 : 全内存数据库前的数据是比现在慢75倍,现在是一个查询70-80ms,假定这一秒是100k : 单子,按照顺序处理,全部处理完是70-80分钟,也就是在高峰下单的用户,最多要等 : 那么久。 : 你觉得这是个可以接受的结果?
|
n*****t 发帖数: 22014 | 74 当然抢,不抢白不抢,不抢前段咋知道有票没票,前端只能保证让阿拉上海人先抢,不
保证抢到。
你要究细节,老魏的方案肯定有很多具体的问题,但都不是不能解决的,over
【在 z*******3 的大作中提到】 : 还用抢么?
|
z*******3 发帖数: 13709 | 75 时间戳
我第四遍说了
再让我废话,我就插你
【在 n*****t 的大作中提到】 : 当然抢,不抢白不抢,不抢前段咋知道有票没票,前端只能保证让阿拉上海人先抢,不 : 保证抢到。 : 你要究细节,老魏的方案肯定有很多具体的问题,但都不是不能解决的,over
|
g*****g 发帖数: 34805 | 76 你可以把备份的车次一次都写进单子,我的单子可以有复杂逻辑。一次都处理。
【在 n*****t 的大作中提到】 : 60 分钟能拿到票也就算了,拿不到我换个车次还得重新排队,这是搞哪样啊?
|
n*****t 发帖数: 22014 | 77 时间戳那就是摆设,毫无疑义。再说一遍,你打算拿着时间戳找我打官司咋地,我还说
我的网吧不给力,明明是我先点的鼠标呢。
【在 z*******3 的大作中提到】 : 时间戳 : 我第四遍说了 : 再让我废话,我就插你
|
l*****9 发帖数: 9501 | 78 不异步网站必然挂,你知道异步也叫no-blocking IO吗?
【在 n*****t 的大作中提到】 : 异步处理本来就是奇葩,比现在的系统都不如,你干脆撤掉网站让居委会大妈登记叫号 : 得了
|
n*****t 发帖数: 22014 | 79 我就想知道哪些车有票,完了我得问小红走不走
【在 g*****g 的大作中提到】 : 你可以把备份的车次一次都写进单子,我的单子可以有复杂逻辑。一次都处理。
|
g*****g 发帖数: 34805 | 80 10k出票,不是10k的单。前后分开就是要把这两个的耦合弄开。
能够意识到票子少,单子多,才是这个系统的关键。
【在 b*******s 的大作中提到】 : 最多10k我相信你绝对没问题,问题是你和需求似乎不是很相关
|
|
|
n*****t 发帖数: 22014 | 81 居委会大妈登记也是异步,别整没营养的
【在 l*****9 的大作中提到】 : 不异步网站必然挂,你知道异步也叫no-blocking IO吗?
|
l*****9 发帖数: 9501 | 82 你以为现在抢票不是靠时间戳?
【在 n*****t 的大作中提到】 : 时间戳那就是摆设,毫无疑义。再说一遍,你打算拿着时间戳找我打官司咋地,我还说 : 我的网吧不给力,明明是我先点的鼠标呢。
|
g*****g 发帖数: 34805 | 83 你可以问那些车次有票,我那数据库又不是不支持查询。每秒拿一个snapshot出来,非
实时,没票下单多半没戏,查到有票下单不保证能买到。比起太监那网站刷都刷不出来
,还是强了无数倍的。
【在 n*****t 的大作中提到】 : 我就想知道哪些车有票,完了我得问小红走不走
|
n*****t 发帖数: 22014 | 84 当然不是,谁先插谁生儿子,后插的都是卢瑟
【在 l*****9 的大作中提到】 : 你以为现在抢票不是靠时间戳?
|
n*****t 发帖数: 22014 | 85 人家性能是你 500 倍
【在 g*****g 的大作中提到】 : 你可以问那些车次有票,我那数据库又不是不支持查询。每秒拿一个snapshot出来,非 : 实时,没票下单多半没戏,查到有票下单不保证能买到。比起太监那网站刷都刷不出来 : ,还是强了无数倍的。
|
g*****g 发帖数: 34805 | 86 我的设计,每个人只用下一次单子,等3分钟,你下多单子没用。单子没处理之前还可
以随便改。单子还支持备选车次,多人等等。整个系统没scale out的只有后台的关系
数据库,3分钟就等在那上面。
【在 b*******s 的大作中提到】 : 古德霸的设计,如果回避了后端并发,加上赵全堆的补丁 : 就是死机80分钟的表现
|
l*****9 发帖数: 9501 | 87 当机,丢单,性能好个鸟。没有搞过大数据云计算的不理解C++快的那2秒算个鸟
【在 n*****t 的大作中提到】 : 人家性能是你 500 倍
|
g*****g 发帖数: 34805 | 88 他的性能一点不比我的强,我的设计同样可以收5m/秒的单子,多堆机器即可。
他同样不能同步出票,要有延迟。事实上,他会大量丢单,就像12306一样。
【在 n*****t 的大作中提到】 : 人家性能是你 500 倍
|
l*****9 发帖数: 9501 | 89 先插不就是时间戳靠前?你鸭不懂最好闭嘴
【在 n*****t 的大作中提到】 : 当然不是,谁先插谁生儿子,后插的都是卢瑟
|
l*****9 发帖数: 9501 | 90 你的无知实在太惊人了
【在 n*****t 的大作中提到】 : 居委会大妈登记也是异步,别整没营养的
|
|
|
e**o 发帖数: 5509 | 91 铁道部就是太实惠了在这里。
铁道部非得要求网上买票和窗口一样。
其实也有道理,
当时有票当时就能看到,当时就能买到,没票当时就能作决定换别的车次
有票看不到,有票买不到那还要售票网站干什么吃的。
【在 n*****t 的大作中提到】 : 我有 12 个车次选择,我还想跟相好的一起走,你能不能告诉我哪些车有票先啊,尼玛 : 不能连窗口卖票还不如吧
|
g*****g 发帖数: 34805 | 92 我的设计一秒中之前的实时数据能让你看到,就这1秒钟可能有100万订单进来所以我保
证不了能买到。
太监的系统也是一样的,你查询有票,你再去下,哪能保证抢到。售票窗口还是一样。
看着有,下的时候就没了。只能说有个先来后到。你到窗口排队,你还能保证有票不成?
【在 e**o 的大作中提到】 : 铁道部就是太实惠了在这里。 : 铁道部非得要求网上买票和窗口一样。 : 其实也有道理, : 当时有票当时就能看到,当时就能买到,没票当时就能作决定换别的车次 : 有票看不到,有票买不到那还要售票网站干什么吃的。
|
b*******s 发帖数: 5216 | 93 和我想的补丁差不多
这是个可行方案
【在 g*****g 的大作中提到】 : 没有啥长时间一说,就是几分钟。 : 后台我当然是做并发得,只不过是单关系数据库,用transaction来保证acid。把单子 : 按车次排序分队列,这个前端写单子存入得时候就做好了。后端得处理服务器是一个集 : 群,每次可以从cassandra批量读。另外每隔一秒从数据库里拿出个所有余票的 : snapshot,cache到 : 各个处理服务器上。处理先跟这个cache比较,确认各段都有票,再发到数据库交易。 : 所以处理是并发得,如果没票的话,不用写入关系数据库,写回cassandra确认订单失 : 败。 : 尽管订单很多,峰值达到百万/秒,可用的票很少,根据新闻每天千万人次,一半 : 12306出,每天不过500万张。这500万张,在一台大机器上,oracle数据库,5k-10k/
|
e**o 发帖数: 5509 | 94 你没在窗口买过票。
排队轮到你的了,你问窗口某个车次是否有票,窗口告诉你有,就一定能买到。
窗口能看到,就能买到,好像是他们先hold住,然后告诉你是否有票。
查询即排队,查询即锁定。查别的车次,就释放刚才查询锁定的。
不然窗口早就被砸,被骂百八十遍了。
窗口告诉你没有,那就是当时一定没有。
别的窗口hold的票,没买,重新释放的不算。
但这种情况很少,而且基本上不会发生。
因为你付钱或者查询别的车次的时候这张刚释放出来的牌,早就被别的窗口hold住.
成?
【在 g*****g 的大作中提到】 : 我的设计一秒中之前的实时数据能让你看到,就这1秒钟可能有100万订单进来所以我保 : 证不了能买到。 : 太监的系统也是一样的,你查询有票,你再去下,哪能保证抢到。售票窗口还是一样。 : 看着有,下的时候就没了。只能说有个先来后到。你到窗口排队,你还能保证有票不成?
|
g*****g 发帖数: 34805 | 95 就算是你说的队。你是希望刷一天,一多半时间网站根本没相应,反复刷运气好票能出
来。还是任何时候花一分钟添个单子
走人,等着email/短信通知。按顺序该是你的就是你的。
类比的做法就是排半天队,到窗口几乎是这没票,那没票。或者填个单子全国按号排队
,回家等通知。虽然同样没买到,至少是按顺序的,至少没浪费时间。
只要是合理的做法,需求不是不能改的。
【在 e**o 的大作中提到】 : 你没在窗口买过票。 : 排队轮到你的了,你问窗口某个车次是否有票,窗口告诉你有,就一定能买到。 : 窗口能看到,就能买到,好像是他们先hold住,然后告诉你是否有票。 : 查询即排队,查询即锁定。查别的车次,就释放刚才查询锁定的。 : 不然窗口早就被砸,被骂百八十遍了。 : 窗口告诉你没有,那就是当时一定没有。 : 别的窗口hold的票,没买,重新释放的不算。 : 但这种情况很少,而且基本上不会发生。 : 因为你付钱或者查询别的车次的时候这张刚释放出来的牌,早就被别的窗口hold住. :
|
e**o 发帖数: 5509 | 96 窗口重来没发生过,告诉你有票但出不来的情况。这个情况理论上就不存在。
几乎没发生过,当时没有票,过几分钟就有票的情况。但这个情况理论上的确存在。
【在 e**o 的大作中提到】 : 你没在窗口买过票。 : 排队轮到你的了,你问窗口某个车次是否有票,窗口告诉你有,就一定能买到。 : 窗口能看到,就能买到,好像是他们先hold住,然后告诉你是否有票。 : 查询即排队,查询即锁定。查别的车次,就释放刚才查询锁定的。 : 不然窗口早就被砸,被骂百八十遍了。 : 窗口告诉你没有,那就是当时一定没有。 : 别的窗口hold的票,没买,重新释放的不算。 : 但这种情况很少,而且基本上不会发生。 : 因为你付钱或者查询别的车次的时候这张刚释放出来的牌,早就被别的窗口hold住. :
|
e**o 发帖数: 5509 | 97 这么说吧,网站售票必须和窗口一样。
不然乘客没法做决定。一般有很多车次可以选,这个车次没有可以立刻买别的。
按照你的卖法,乘客怎么选?只能尽可能多的买各个车次的,然后再挨个退?
增加多少成本和负担?
最关键的是做决定的实时性没了。
放票就是那么几次,这次买不上,就只能等下次了。
别说火车,有的时候汽车票都很紧张。
某天的火车买不到,就得立刻买汽车,不然汽车票也没了。除非你愿意等。
【在 g*****g 的大作中提到】 : 就算是你说的队。你是希望刷一天,一多半时间网站根本没相应,反复刷运气好票能出 : 来。还是任何时候花一分钟添个单子 : 走人,等着email/短信通知。按顺序该是你的就是你的。 : 类比的做法就是排半天队,到窗口几乎是这没票,那没票。或者填个单子全国按号排队 : ,回家等通知。虽然同样没买到,至少是按顺序的,至少没浪费时间。 : 只要是合理的做法,需求不是不能改的。
|
e**o 发帖数: 5509 | 98 合计半天你老利用高科技开发的售票系统,
还没有几十年前的铁路窗口售票系统好使?
当然,人家是专业卖火车票的,你是不是卖票的。最起码不是火车票。
术业有专攻,也情有可原。
【在 g*****g 的大作中提到】 : 就算是你说的队。你是希望刷一天,一多半时间网站根本没相应,反复刷运气好票能出 : 来。还是任何时候花一分钟添个单子 : 走人,等着email/短信通知。按顺序该是你的就是你的。 : 类比的做法就是排半天队,到窗口几乎是这没票,那没票。或者填个单子全国按号排队 : ,回家等通知。虽然同样没买到,至少是按顺序的,至少没浪费时间。 : 只要是合理的做法,需求不是不能改的。
|
g*****g 发帖数: 34805 | 99 可以下一个单子,按着你的要求来。 A 没有就 B, B 没有就 C, 一次处理完。不是你
你刷半天强多了。你刷 A 半天,放弃了才想刷 B, 结果也没了,悲惨了。我这个里面
就给你弄出来了。
【在 e**o 的大作中提到】 : 这么说吧,网站售票必须和窗口一样。 : 不然乘客没法做决定。一般有很多车次可以选,这个车次没有可以立刻买别的。 : 按照你的卖法,乘客怎么选?只能尽可能多的买各个车次的,然后再挨个退? : 增加多少成本和负担? : 最关键的是做决定的实时性没了。 : 放票就是那么几次,这次买不上,就只能等下次了。 : 别说火车,有的时候汽车票都很紧张。 : 某天的火车买不到,就得立刻买汽车,不然汽车票也没了。除非你愿意等。
|
g*****g 发帖数: 34805 | 100 没有排队好使?原来你是喜欢排队,喜欢刷屏的。
【在 e**o 的大作中提到】 : 合计半天你老利用高科技开发的售票系统, : 还没有几十年前的铁路窗口售票系统好使? : 当然,人家是专业卖火车票的,你是不是卖票的。最起码不是火车票。 : 术业有专攻,也情有可原。
|
|
|
z*******3 发帖数: 13709 | 101 那你怪网吧去
时间戳在server side,所有人一个时间排队,有啥不服的?
真想戳你一下
【在 n*****t 的大作中提到】 : 时间戳那就是摆设,毫无疑义。再说一遍,你打算拿着时间戳找我打官司咋地,我还说 : 我的网吧不给力,明明是我先点的鼠标呢。
|
e**o 发帖数: 5509 | 102 你做的不是售票系统,是预定系统。。。
【在 g*****g 的大作中提到】 : 可以下一个单子,按着你的要求来。 A 没有就 B, B 没有就 C, 一次处理完。不是你 : 你刷半天强多了。你刷 A 半天,放弃了才想刷 B, 结果也没了,悲惨了。我这个里面 : 就给你弄出来了。
|
e**o 发帖数: 5509 | 103 多少延迟吧。估计10分钟左右还能忍。
【在 g*****g 的大作中提到】 : 可以下一个单子,按着你的要求来。 A 没有就 B, B 没有就 C, 一次处理完。不是你 : 你刷半天强多了。你刷 A 半天,放弃了才想刷 B, 结果也没了,悲惨了。我这个里面 : 就给你弄出来了。
|
e**o 发帖数: 5509 | 104 上网填单子比不是排队,不是刷屏?
人家铁道部的窗口还能给个实时的结果。你这还得等。谁的好使?
【在 g*****g 的大作中提到】 : 没有排队好使?原来你是喜欢排队,喜欢刷屏的。
|
g*****g 发帖数: 34805 | 105 最多10分钟。关键是你不用刷。下多单没好处。
【在 e**o 的大作中提到】 : 多少延迟吧。估计10分钟左右还能忍。
|
g*****g 发帖数: 34805 | 106 你网站都打不开,叫什么实时。
上网填单子就一次,反复刷屏干啥。
铁道部的窗口得排半天的队,你抢票同样得刷半天的屏,两者都不保证有票。
我这个虽然不保证有票,至少舒舒服服在暖气房里喝杯茶,结果就出来了,不用跟电脑
怄气。
【在 e**o 的大作中提到】 : 上网填单子比不是排队,不是刷屏? : 人家铁道部的窗口还能给个实时的结果。你这还得等。谁的好使?
|
g*****g 发帖数: 34805 | 107 我给你举个例子,就是长江上游下暴雨,下游要发洪水。
我的做法就是三峡水库,你的做法就是发吧,哪里垮了就垮了好了。
顺利通过到达东海的,就是实时的。 |
e**o 发帖数: 5509 | 108 其实你就是做个排号机而已。说是预售系统都夸张了。
你认为铁道部需要这样的系统吗?
这么多人,填单子提交的时候也是挤。
【在 g*****g 的大作中提到】 : 你网站都打不开,叫什么实时。 : 上网填单子就一次,反复刷屏干啥。 : 铁道部的窗口得排半天的队,你抢票同样得刷半天的屏,两者都不保证有票。 : 我这个虽然不保证有票,至少舒舒服服在暖气房里喝杯茶,结果就出来了,不用跟电脑 : 怄气。
|
z*******3 发帖数: 13709 | 109 需要
现在就差不多这么做的
想想铁道部在向谁取经?
淘宝啊
开了20个instances
【在 e**o 的大作中提到】 : 其实你就是做个排号机而已。说是预售系统都夸张了。 : 你认为铁道部需要这样的系统吗? : 这么多人,填单子提交的时候也是挤。
|
e**o 发帖数: 5509 | 110 差别大了,现在12306能实时出票。
这个排号机能吗?这就是水平差距。
难道大家不比先进,开始比烂了?
【在 z*******3 的大作中提到】 : 需要 : 现在就差不多这么做的 : 想想铁道部在向谁取经? : 淘宝啊 : 开了20个instances
|
|
|
z*******3 发帖数: 13709 | 111 http://www.huxiu.com/article/26223/1.html
先看看再吹
【在 e**o 的大作中提到】 : 差别大了,现在12306能实时出票。 : 这个排号机能吗?这就是水平差距。 : 难道大家不比先进,开始比烂了?
|
z*******3 发帖数: 13709 | 112 老魏自以为能搞定,结果没搞定
古德霸等人一开始就建议,牺牲掉实时性,保证最后正确
其实实时也不是做不了,上台主机,多半能作到
但是主机又贵,铁道部又不想贵,所以就出问题了 |
z*******3 发帖数: 13709 | 113 老魏的方案就是用计数器绕开了多线程的transaction
问题在于,这么做,多线程并发就会出错
很好理解,学过多线程的都知道
现在发现,这个错误有些不对,理论上不正确
于是打算搞单线程…………………………………… |
z*******3 发帖数: 13709 | 114 单线程还需要2个cpu么?
如果不需要,那就是一个cpu一台机器,sharding
如果需要,那就是伪多线程,async
都有人在做,都看着这家伙怎么表演了
有本事别过来 |
b*******s 发帖数: 5216 | 115 他的后端并行了也可以保证throughput,尽管latency还是没办法
【在 n*****t 的大作中提到】 : 人家性能是你 500 倍
|
b*******s 发帖数: 5216 | 116 实时性也是可以解决的,按车次分库分表,同样对订单加分队列,这个也是因为铁路系
统的物理限制,一列车一天也就几千个票可以卖。不过这样服务器的负载平衡要稍微复
杂一点。不过这也不是硬实时系统,能够十几秒响应也可以接受
【在 e**o 的大作中提到】 : 这么说吧,网站售票必须和窗口一样。 : 不然乘客没法做决定。一般有很多车次可以选,这个车次没有可以立刻买别的。 : 按照你的卖法,乘客怎么选?只能尽可能多的买各个车次的,然后再挨个退? : 增加多少成本和负担? : 最关键的是做决定的实时性没了。 : 放票就是那么几次,这次买不上,就只能等下次了。 : 别说火车,有的时候汽车票都很紧张。 : 某天的火车买不到,就得立刻买汽车,不然汽车票也没了。除非你愿意等。
|
b*******s 发帖数: 5216 | 117 对,查询即锁定
【在 e**o 的大作中提到】 : 你没在窗口买过票。 : 排队轮到你的了,你问窗口某个车次是否有票,窗口告诉你有,就一定能买到。 : 窗口能看到,就能买到,好像是他们先hold住,然后告诉你是否有票。 : 查询即排队,查询即锁定。查别的车次,就释放刚才查询锁定的。 : 不然窗口早就被砸,被骂百八十遍了。 : 窗口告诉你没有,那就是当时一定没有。 : 别的窗口hold的票,没买,重新释放的不算。 : 但这种情况很少,而且基本上不会发生。 : 因为你付钱或者查询别的车次的时候这张刚释放出来的牌,早就被别的窗口hold住. :
|
z*******3 发帖数: 13709 | 118 还是没看懂二爷做的
【在 b*******s 的大作中提到】 : 实时性也是可以解决的,按车次分库分表,同样对订单加分队列,这个也是因为铁路系 : 统的物理限制,一列车一天也就几千个票可以卖。不过这样服务器的负载平衡要稍微复 : 杂一点。不过这也不是硬实时系统,能够十几秒响应也可以接受
|
b*******s 发帖数: 5216 | 119 你对魏老师方案的理解还是不对,他的方案的表现,应该是下单,不到1秒知道结果
不可能刷一天
【在 g*****g 的大作中提到】 : 就算是你说的队。你是希望刷一天,一多半时间网站根本没相应,反复刷运气好票能出 : 来。还是任何时候花一分钟添个单子 : 走人,等着email/短信通知。按顺序该是你的就是你的。 : 类比的做法就是排半天队,到窗口几乎是这没票,那没票。或者填个单子全国按号排队 : ,回家等通知。虽然同样没买到,至少是按顺序的,至少没浪费时间。 : 只要是合理的做法,需求不是不能改的。
|
z*******3 发帖数: 13709 | 120 扯,国内买票时候,你问有没有票
当你掏钱时候,告诉你票被买走了情况又不是没有
没买过火车票在这里骗人
还查询即锁定,那这个锁代价够高的
一百个坐位,一百个人查,其他人连查都查不了
【在 b*******s 的大作中提到】 : 对,查询即锁定
|
|
|
l*****9 发帖数: 9501 | 121 排序是任何应用都要做的。但是waiting list远比排序复杂。你是职业程序员吗?
【在 e**o 的大作中提到】 : 其实你就是做个排号机而已。说是预售系统都夸张了。 : 你认为铁道部需要这样的系统吗? : 这么多人,填单子提交的时候也是挤。
|
n*****t 发帖数: 22014 | 122 赵策你越来越一统江湖了,你这个戳有屁意义啊,不用又能如何啊
【在 z*******3 的大作中提到】 : 那你怪网吧去 : 时间戳在server side,所有人一个时间排队,有啥不服的? : 真想戳你一下
|
e**o 发帖数: 5509 | 123 不知道你什么时候买的火车票。
2006年时候代售点的人就明确告诉我,看到票就能买到票。
除非你查询完没买,又去查询别的,原先查询的当然释放掉。
一开始查询的当然有可能买不到,但这种情况只能怪自己犹豫,赖不到出票系统上。
【在 z*******3 的大作中提到】 : 扯,国内买票时候,你问有没有票 : 当你掏钱时候,告诉你票被买走了情况又不是没有 : 没买过火车票在这里骗人 : 还查询即锁定,那这个锁代价够高的 : 一百个坐位,一百个人查,其他人连查都查不了
|
b*******s 发帖数: 5216 | 124 可以做到10几秒,分库,中间加一级针对车次的筛选,不同车次扔不同队列
退票加一个优先队列
【在 g*****g 的大作中提到】 : 最多10分钟。关键是你不用刷。下多单没好处。
|
z*******3 发帖数: 13709 | 125 去年,厦门站,谢谢
【在 e**o 的大作中提到】 : 不知道你什么时候买的火车票。 : 2006年时候代售点的人就明确告诉我,看到票就能买到票。 : 除非你查询完没买,又去查询别的,原先查询的当然释放掉。 : 一开始查询的当然有可能买不到,但这种情况只能怪自己犹豫,赖不到出票系统上。
|
z*******3 发帖数: 13709 | 126 排队时候用啊
你在想什么?
再戳你一下
【在 n*****t 的大作中提到】 : 赵策你越来越一统江湖了,你这个戳有屁意义啊,不用又能如何啊
|
e**o 发帖数: 5509 | 127 当然不是。
但是客户要的是快速出票系统。
你弄出个waiting list,客户能满意吗?
其实老魏的出发点是满足客户需求,goodbug是在改变客户需求。
【在 l*****9 的大作中提到】 : 排序是任何应用都要做的。但是waiting list远比排序复杂。你是职业程序员吗?
|
e**o 发帖数: 5509 | 128 那是售票员查询别的把那张票释放了。
你确定你看到屏幕了?
【在 z*******3 的大作中提到】 : 去年,厦门站,谢谢
|
z*******3 发帖数: 13709 | 129 客户要的是快速出票系统???
快速出票有什么意义?
火车票能买到就好了
你10s出和200s出差别很大么?
春运以前买票,很多民工通宵排队
你这个怎么快?
【在 e**o 的大作中提到】 : 当然不是。 : 但是客户要的是快速出票系统。 : 你弄出个waiting list,客户能满意吗? : 其实老魏的出发点是满足客户需求,goodbug是在改变客户需求。
|
z*******3 发帖数: 13709 | 130 我站在第一位看到了,你说呢?
除非售票员帮你锁了
【在 e**o 的大作中提到】 : 那是售票员查询别的把那张票释放了。 : 你确定你看到屏幕了?
|
|
|
z*******3 发帖数: 13709 | 131 至少理论上没有弄错
连个计数器都能写错啊
【在 b*******s 的大作中提到】 : 可以做到10几秒,分库,中间加一级针对车次的筛选,不同车次扔不同队列 : 退票加一个优先队列
|
z*******3 发帖数: 13709 | 132 你捧着一个错的臭脚是不是很high?
理论上都是错的啊
【在 b*******s 的大作中提到】 : 可以做到10几秒,分库,中间加一级针对车次的筛选,不同车次扔不同队列 : 退票加一个优先队列
|
z*******3 发帖数: 13709 | 133 售票员一般是看你掏钱,就出票了
等你给钱,算好,就把票给你了
不是看到就有,他们不怕卖不出去
反正也不是他们的钱,所以广深线很多时候
你去买票,售票员直接从旁边一叠扔一张给你
【在 e**o 的大作中提到】 : 那是售票员查询别的把那张票释放了。 : 你确定你看到屏幕了?
|
z*******3 发帖数: 13709 | 134 哈哈,就说,气死你鸭的
计数器都能写错,弱爆了
【在 b*******s 的大作中提到】 : 可以做到10几秒,分库,中间加一级针对车次的筛选,不同车次扔不同队列 : 退票加一个优先队列
|
z*******3 发帖数: 13709 | 135 计数器程序员不要悲愤
【在 b*******s 的大作中提到】 : 可以做到10几秒,分库,中间加一级针对车次的筛选,不同车次扔不同队列 : 退票加一个优先队列
|
b*******s 发帖数: 5216 | 136 我不生气,只是看到你觉得好笑
【在 z*******3 的大作中提到】 : 哈哈,就说,气死你鸭的 : 计数器都能写错,弱爆了
|
z*******3 发帖数: 13709 | 137 这么简单的多线程都能写错
都还要改回单线程
计数器程序员真不是一般的弱啊
【在 b*******s 的大作中提到】 : 我不生气,只是看到你觉得好笑
|
z*******3 发帖数: 13709 | 138 哈哈,那正好,我也很喜欢这样
是吧?计数器程序员
【在 b*******s 的大作中提到】 : 我不生气,只是看到你觉得好笑
|
b*******s 发帖数: 5216 | 139 你就别看到人就叫爸爸了
【在 z*******3 的大作中提到】 : 这么简单的多线程都能写错 : 都还要改回单线程 : 计数器程序员真不是一般的弱啊
|
z*******3 发帖数: 13709 | 140 看到你爷爷是这么叫的
【在 b*******s 的大作中提到】 : 你就别看到人就叫爸爸了
|
|
|
e**o 发帖数: 5509 | 141 只能说铁路的查询系统有问题。应该查询即锁定。不然查了白查。
看来窗口售票和网络售票的系统还真应该有点差别。
窗口有售票员和后面排队的人等着,可以保证查询很快就出结果。
12306的查询可没有压力,等得起,后面没有人催。
不过售票员的职业素质应该查询后立刻锁定,然后再问乘客要不要。
不然就是给自己找麻烦。
【在 z*******3 的大作中提到】 : 我站在第一位看到了,你说呢? : 除非售票员帮你锁了
|
b*******s 发帖数: 5216 | 142 需要锁定吗?票数减一就是了,还真是个计数器问题
【在 e**o 的大作中提到】 : 只能说铁路的查询系统有问题。应该查询即锁定。不然查了白查。 : 看来窗口售票和网络售票的系统还真应该有点差别。 : 窗口有售票员和后面排队的人等着,可以保证查询很快就出结果。 : 12306的查询可没有压力,等得起,后面没有人催。 : 不过售票员的职业素质应该查询后立刻锁定,然后再问乘客要不要。 : 不然就是给自己找麻烦。
|
z*******3 发帖数: 13709 | 143 不合适
查询之后释放不了怎么办?
比如释放信号因为网络丢包,很正常么
你要用专线保证
没有必要么
不过铁路售票点内部网络速度飞快
也不差多少,你看过他们的界面么?
一查查一堆啊,全部锁定?不可能的
【在 e**o 的大作中提到】 : 只能说铁路的查询系统有问题。应该查询即锁定。不然查了白查。 : 看来窗口售票和网络售票的系统还真应该有点差别。 : 窗口有售票员和后面排队的人等着,可以保证查询很快就出结果。 : 12306的查询可没有压力,等得起,后面没有人催。 : 不过售票员的职业素质应该查询后立刻锁定,然后再问乘客要不要。 : 不然就是给自己找麻烦。
|
z*******3 发帖数: 13709 | 144 并发啊
计数器程序员真喜欢老魏那一套啊
【在 b*******s 的大作中提到】 : 需要锁定吗?票数减一就是了,还真是个计数器问题
|
z*******3 发帖数: 13709 | 145 正常人想到的都是锁
计数器程序员就知道计数器
赶紧去申请图灵奖 |
e**o 发帖数: 5509 | 146 我买票的时候都是先锁定,然后问你要不要,确认要了,就出票。
你说的都是代售点的做法,车站窗口不可能这么做的。
我在代售点排队的时候,就有代售点的人统计排队人的终点站。
然后让售票员在出票的第一时间只管出票。打印出一摞热门票后,交给第二个人慢慢收
钱。
再开始按顺序卖票。
【在 z*******3 的大作中提到】 : 售票员一般是看你掏钱,就出票了 : 等你给钱,算好,就把票给你了 : 不是看到就有,他们不怕卖不出去 : 反正也不是他们的钱,所以广深线很多时候 : 你去买票,售票员直接从旁边一叠扔一张给你
|
z*******3 发帖数: 13709 | 147 这个可能
但是看到就锁
不太可能
人工锁
可能
【在 e**o 的大作中提到】 : 我买票的时候都是先锁定,然后问你要不要,确认要了,就出票。 : 你说的都是代售点的做法,车站窗口不可能这么做的。 : 我在代售点排队的时候,就有代售点的人统计排队人的终点站。 : 然后让售票员在出票的第一时间只管出票。打印出一摞热门票后,交给第二个人慢慢收 : 钱。 : 再开始按顺序卖票。
|
l*****9 发帖数: 9501 | 148 关于用户体验,不需要懂编程。你要买票,昆明到长春,现在有两个选择:
1。号称的实时系统:网站基本没反应,刷票半天,也许刷到一张也许刷不到。
2。非实时系统:你在网站下订单,组合票:昆明到北京,然后最快北京到长春。交订
单,网站马上告诉你:订单提交完成,10分钟内出结果。5分钟后你收到短信:订票成
功,回复短信购买!或者:订票失败但是你在waiting list,按照你的订单时间戳排队
,如果你想等票,不需要再次提交订单,如果不想等票,可以回复短信取消。
你更喜欢哪个呢?
【在 e**o 的大作中提到】 : 当然不是。 : 但是客户要的是快速出票系统。 : 你弄出个waiting list,客户能满意吗? : 其实老魏的出发点是满足客户需求,goodbug是在改变客户需求。
|
e**o 发帖数: 5509 | 149 当然看过。你说的也有道理。
按目的地查询当然一查一堆。需要挑车次,挑日期锁定。
看来还有改进余地。
指定车次,目的地,指定日期,就有唯一结果,自动锁定就好了。
不过铁路的出票系统没这么简单,都是给目的地,给最近几天每个车次剩多少票。
【在 z*******3 的大作中提到】 : 不合适 : 查询之后释放不了怎么办? : 比如释放信号因为网络丢包,很正常么 : 你要用专线保证 : 没有必要么 : 不过铁路售票点内部网络速度飞快 : 也不差多少,你看过他们的界面么? : 一查查一堆啊,全部锁定?不可能的
|
z*******3 发帖数: 13709 | 150 总之就是有一个start point
然后锁定,然后执行
执行完毕后释放锁
很传统
顺便说一下
铁道部db是sybase
这里某人以前在sybase做过
不过喜欢装不懂sql,呼呼
买卖题上好几个大牛都在sybase做过
比如卡桑
【在 e**o 的大作中提到】 : 当然看过。你说的也有道理。 : 按目的地查询当然一查一堆。需要挑车次,挑日期锁定。 : 看来还有改进余地。 : 指定车次,目的地,指定日期,就有唯一结果,自动锁定就好了。 : 不过铁路的出票系统没这么简单,都是给目的地,给最近几天每个车次剩多少票。
|
|
|
q*c 发帖数: 9453 | 151 制止你这样做的办法太多了。 基本可以保证一人只提交一次。
【在 b*******s 的大作中提到】 : 如果我是用户,我肯定会拼命点提交button,这样这个系统会产生多少新订单呢? : : 100k
|
l*****9 发帖数: 9501 | 152 很简单,按最新订单,就是说递交越多排队越靠后,活雷锋,刷吧
【在 q*c 的大作中提到】 : 制止你这样做的办法太多了。 基本可以保证一人只提交一次。
|
g*****g 发帖数: 34805 | 153 窗口的可以预分票走不同规则,现在本来就是预分票的。
【在 e**o 的大作中提到】 : 只能说铁路的查询系统有问题。应该查询即锁定。不然查了白查。 : 看来窗口售票和网络售票的系统还真应该有点差别。 : 窗口有售票员和后面排队的人等着,可以保证查询很快就出结果。 : 12306的查询可没有压力,等得起,后面没有人催。 : 不过售票员的职业素质应该查询后立刻锁定,然后再问乘客要不要。 : 不然就是给自己找麻烦。
|
g*****g 发帖数: 34805 | 154 填单子偏偏就是没问题。因为所有的订单都是不冲突的,你来多少我实时写多少。
魏公公有问题是因为单子要实时竞争同一个计数器。
没有什么是可以scale out什么不能scale out的意识,恰恰就是外行和内行的区别。
【在 e**o 的大作中提到】 : 其实你就是做个排号机而已。说是预售系统都夸张了。 : 你认为铁道部需要这样的系统吗? : 这么多人,填单子提交的时候也是挤。
|
g*****g 发帖数: 34805 | 155 他那个单机撑不住1M/s IO, 这个东西真不是什么信不信的问题。测试一下就知道了,
又不是helloworld.
【在 b*******s 的大作中提到】 : 你对魏老师方案的理解还是不对,他的方案的表现,应该是下单,不到1秒知道结果 : 不可能刷一天
|
g*****g 发帖数: 34805 | 156 分库我讨论过,这个是优化干的。而且planning本身很复杂,就算能优化我觉得提高也
不会超过一个数量级。做一个复杂系统,通常都是从worst case开始估计还有余量,然
后慢慢优化。像魏公公那样上来就撑得满满的,一个没考虑到的需求增加复杂度,立刻
就是必死的节奏。
我老好歹是做了多年大系统架构,就是一些经验。魏公公就做一些客户系统,崩了有啥
的,不就是单子没提上去吗。又不是nasdaq崩了。
【在 b*******s 的大作中提到】 : 可以做到10几秒,分库,中间加一级针对车次的筛选,不同车次扔不同队列 : 退票加一个优先队列
|
g*****g 发帖数: 34805 | 157 只能改单,改单就改timestamp往后排. 不能提交多单,这样比较简单。
【在 l*****9 的大作中提到】 : 很简单,按最新订单,就是说递交越多排队越靠后,活雷锋,刷吧
|
g*****g 发帖数: 34805 | 158 老魏的系统撑不住,他上线了大家可以实测,光练嘴皮子没用。
【在 e**o 的大作中提到】 : 当然不是。 : 但是客户要的是快速出票系统。 : 你弄出个waiting list,客户能满意吗? : 其实老魏的出发点是满足客户需求,goodbug是在改变客户需求。
|
a***n 发帖数: 538 | 159 我觉得卖票的事情其实1,2秒的时间对用户来说就是实时的了,完全没有必要做单机的
。如果做分布式计数器,第二层做分布式optimistic locking做到1,2秒出票应该没有
问题的。因为大部分能出的票全局来说conflict不是很严重。 |
n*****t 发帖数: 22014 | 160 分布计数器或者锁都可以,带来的问题就是跨机索票也就是联程票,会有一定的开销。
如果单节点能搞定,就没必要分了,并不是说绝对不分布。
【在 a***n 的大作中提到】 : 我觉得卖票的事情其实1,2秒的时间对用户来说就是实时的了,完全没有必要做单机的 : 。如果做分布式计数器,第二层做分布式optimistic locking做到1,2秒出票应该没有 : 问题的。因为大部分能出的票全局来说conflict不是很严重。
|
|
|
a***n 发帖数: 538 | 161 分布以后联程票的逻辑就可以做复杂,单机显然受限了。而且单机串联备份的话维护成
本很高,要专用软件硬件。分布的话搞些普通的服务器,几个java程序员就搞定了。
【在 n*****t 的大作中提到】 : 分布计数器或者锁都可以,带来的问题就是跨机索票也就是联程票,会有一定的开销。 : 如果单节点能搞定,就没必要分了,并不是说绝对不分布。
|
g*****g 发帖数: 34805 | 162 我们的产品环境每天都是chaos monkey到处随即杀instance,就为了确保failover.
老魏的那个系统掉个电,力吗很悲剧,他这糖葫芦串来串去的。就算真可行,光实现本
身就不比12306简单。
【在 a***n 的大作中提到】 : 分布以后联程票的逻辑就可以做复杂,单机显然受限了。而且单机串联备份的话维护成 : 本很高,要专用软件硬件。分布的话搞些普通的服务器,几个java程序员就搞定了。
|
z*******3 发帖数: 13709 | 163 对了
所以java程序员容易有饭吃
请老魏,不行的
就知道让老板没命花钱
【在 a***n 的大作中提到】 : 分布以后联程票的逻辑就可以做复杂,单机显然受限了。而且单机串联备份的话维护成 : 本很高,要专用软件硬件。分布的话搞些普通的服务器,几个java程序员就搞定了。
|