z*******r 发帖数: 415 | 1 没有仔细的看实现,但是几个最基本的事实需要考虑
1.数据量 考虑到要支持的车次,座位数目,和支持的时间段的组合,单机内存装不下
2.车票和车次的来源更新,这里没有固定的计数器, 有的只是动态票源
3.在2的基础上,实现抢票transaction的ACID, 用一个简单内存小程序加几个网络备份
是不现实的,这个不能想当然
4.复杂的transaction处理, 抢票之后要出票,退票,换票之类的更有问题
5.单机的availability问题
当把一个订票系统简化成静态计数器的时候,系统的价值就基本丧失了,不管你能一秒抢
多少票 |
b*******s 发帖数: 5216 | |
t****m 发帖数: 135 | |
n*****t 发帖数: 22014 | 4 老魏说得对,有些人你就让他们糊涂下去好了。
没办法,用惯轮子的人,已经形成思维定式了,老师没教过的一定不对、没有轮子可套
的一定不行,不要发明轮子就是他们的经典信条。
【在 t****m 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 看到第一行就不用看下去了
|
z****e 发帖数: 54598 | 5 你就那么确定上个时代的东西别人不懂?
单机再怎么做都是不现实的
因为存在着巨大的隐患
还是那句话,你让chaos monkey进去砸一砸嘛
人家12306就敢让chaos monkey砸一顿
【在 n*****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 老魏说得对,有些人你就让他们糊涂下去好了。 : 没办法,用惯轮子的人,已经形成思维定式了,老师没教过的一定不对、没有轮子可套 : 的一定不行,不要发明轮子就是他们的经典信条。
|
z****e 发帖数: 54598 | 6
你们上个世纪的人,除了暴力解,还有什么其他的招没有?
反正就是有冲突,就回单机,然后相互独立的部分就爆机器
只要相互不独立,就回去找单机,然后拼命拆逻辑
做各种精简,你不觉得你在回避问题么?
分布式的并发问题,关于如何处理分布式事务等等
都讨论了几十年了,最近十年尤为热门,乱七八糟的paper什么到处都是
你随便去个seminar,都可以听到演讲者在解释如何对付这些问题
为什么你还要回到上个时代的解法去捏?
就你那个联锁问题,是分布式的入门问题好不好?
一个联锁就把你吓得要回去用单机,也是服了
你们这些上个世纪的老头子实在是很幽默啊
【在 n*****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 老魏说得对,有些人你就让他们糊涂下去好了。 : 没办法,用惯轮子的人,已经形成思维定式了,老师没教过的一定不对、没有轮子可套 : 的一定不行,不要发明轮子就是他们的经典信条。
|
l*********s 发帖数: 5409 | 7 三个字总结:无脑上。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 你们上个世纪的人,除了暴力解,还有什么其他的招没有? : 反正就是有冲突,就回单机,然后相互独立的部分就爆机器 : 只要相互不独立,就回去找单机,然后拼命拆逻辑 : 做各种精简,你不觉得你在回避问题么? : 分布式的并发问题,关于如何处理分布式事务等等 : 都讨论了几十年了,最近十年尤为热门,乱七八糟的paper什么到处都是 : 你随便去个seminar,都可以听到演讲者在解释如何对付这些问题 : 为什么你还要回到上个时代的解法去捏? : 就你那个联锁问题,是分布式的入门问题好不好?
|
n*****t 发帖数: 22014 | 8 1、不是单机
2、随便砸
这两个问题回答你无数遍了,你来来回回打滚能不能换个新姿势?不睁着眼睛说瞎话会
死啊?
忘了,应该让你们糊涂下去,或者装糊涂装下去,死了活该。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你就那么确定上个时代的东西别人不懂? : 单机再怎么做都是不现实的 : 因为存在着巨大的隐患 : 还是那句话,你让chaos monkey进去砸一砸嘛 : 人家12306就敢让chaos monkey砸一顿
|
T********i 发帖数: 2416 | 9 老姜赵策这种搅屎棍真不适合给你做小二。我直接帮你拒了。呵呵。
【在 n*****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1、不是单机 : 2、随便砸 : 这两个问题回答你无数遍了,你来来回回打滚能不能换个新姿势?不睁着眼睛说瞎话会 : 死啊? : 忘了,应该让你们糊涂下去,或者装糊涂装下去,死了活该。
|
d******e 发帖数: 2265 | 10 实在看不下去了,本来不想搅混水的。
你就当抢票机是个cache. 现在的问题是n个请求对应一张票。
你让n个请求里面只有一个1hit好了,
剩下的丢给你传统的东西,这样就好理解了。
【在 z*******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 没有仔细的看实现,但是几个最基本的事实需要考虑 : 1.数据量 考虑到要支持的车次,座位数目,和支持的时间段的组合,单机内存装不下 : 2.车票和车次的来源更新,这里没有固定的计数器, 有的只是动态票源 : 3.在2的基础上,实现抢票transaction的ACID, 用一个简单内存小程序加几个网络备份 : 是不现实的,这个不能想当然 : 4.复杂的transaction处理, 抢票之后要出票,退票,换票之类的更有问题 : 5.单机的availability问题 : 当把一个订票系统简化成静态计数器的时候,系统的价值就基本丧失了,不管你能一秒抢 : 多少票
|
|
|
p*****y 发帖数: 529 | 11 大数据害死人。 唯一的感想。
【在 d******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 实在看不下去了,本来不想搅混水的。 : 你就当抢票机是个cache. 现在的问题是n个请求对应一张票。 : 你让n个请求里面只有一个1hit好了, : 剩下的丢给你传统的东西,这样就好理解了。
|
z*******r 发帖数: 415 | 12 很不幸,这个已经不是cache了,这是一个分布式transaction的核心部分, 因为他不是只
读的.要改变状态并且记住状态, 需要满足对transaction的所有要求,
用内存单线程序列化可以解决transaction的某些问题,但是暴露了更多的问题
掉电怎么办? 网卡有问题怎么办? 文件系统出现坏块怎么办, 和其他组件间通信
timeout怎么办? 你怎么知道每一个transaction都persis好了
退一万步只做cache,能100%实时反映另一个DB上的状态也是个很难的问题.
【在 d******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 实在看不下去了,本来不想搅混水的。 : 你就当抢票机是个cache. 现在的问题是n个请求对应一张票。 : 你让n个请求里面只有一个1hit好了, : 剩下的丢给你传统的东西,这样就好理解了。
|
n*****t 发帖数: 22014 | 13 所有问题你自己已经回答了:没有仔细的看实现。
简单说,这是一个 cache,不讨论怎么同步、灾难恢复、timeout 怎么处理,这个设计
的时候已经考虑,由协议实现。即使出现个别数据不同步,顶多就是抢票跟后端之间交
换几个报文来同步。
【在 z*******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 很不幸,这个已经不是cache了,这是一个分布式transaction的核心部分, 因为他不是只 : 读的.要改变状态并且记住状态, 需要满足对transaction的所有要求, : 用内存单线程序列化可以解决transaction的某些问题,但是暴露了更多的问题 : 掉电怎么办? 网卡有问题怎么办? 文件系统出现坏块怎么办, 和其他组件间通信 : timeout怎么办? 你怎么知道每一个transaction都persis好了 : 退一万步只做cache,能100%实时反映另一个DB上的状态也是个很难的问题.
|
d******e 发帖数: 2265 | 14 你抢票阶段就那一个rain check.搞什么transaction.
就是机器死了就是rain check作废而已。
10亿人抢票,100万人拿到ran check,然后让它们进去慢慢排吧,这是该上什么
transcation就上什么。
不要把问题都搅和在一起。
另外123什么挡掉页主要是web端做得不好。抢票从来就不是问题。
【在 z*******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 很不幸,这个已经不是cache了,这是一个分布式transaction的核心部分, 因为他不是只 : 读的.要改变状态并且记住状态, 需要满足对transaction的所有要求, : 用内存单线程序列化可以解决transaction的某些问题,但是暴露了更多的问题 : 掉电怎么办? 网卡有问题怎么办? 文件系统出现坏块怎么办, 和其他组件间通信 : timeout怎么办? 你怎么知道每一个transaction都persis好了 : 退一万步只做cache,能100%实时反映另一个DB上的状态也是个很难的问题.
|
z*******r 发帖数: 415 | 15 抢票机先变cache,又变成不太重要rain check system,
这么说来你给的rain check有可能就是错的,或者多给,或者有票不给,或者给完忘了,基
本上是然并卵
【在 d******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你抢票阶段就那一个rain check.搞什么transaction. : 就是机器死了就是rain check作废而已。 : 10亿人抢票,100万人拿到ran check,然后让它们进去慢慢排吧,这是该上什么 : transcation就上什么。 : 不要把问题都搅和在一起。 : 另外123什么挡掉页主要是web端做得不好。抢票从来就不是问题。
|
g*****y 发帖数: 7271 | 16 这都什么逻辑关系,能解释一下怎么从第一行推到第二行的?
【在 z*******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 抢票机先变cache,又变成不太重要rain check system, : 这么说来你给的rain check有可能就是错的,或者多给,或者有票不给,或者给完忘了,基 : 本上是然并卵
|
z*******r 发帖数: 415 | 17 你的rain check system和master两个独立server之间怎么sync? 如果不解决当然什么
事都可能出来,怎么抢票?
【在 g*****y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这都什么逻辑关系,能解释一下怎么从第一行推到第二行的?
|
g*****y 发帖数: 7271 | 18 整天讨论分布式,要是连数据库都同步不了,还做个屁的分布式啊?
又不是只有抢票机会crash,数据库端的机器也是会crash的,
你就不干活了?大不了从硬盘里再读一次。很难sync么?
【在 z*******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你的rain check system和master两个独立server之间怎么sync? 如果不解决当然什么 : 事都可能出来,怎么抢票?
|
z*******r 发帖数: 415 | 19 明白了
【在 g*****y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 整天讨论分布式,要是连数据库都同步不了,还做个屁的分布式啊? : 又不是只有抢票机会crash,数据库端的机器也是会crash的, : 你就不干活了?大不了从硬盘里再读一次。很难sync么?
|
z****e 发帖数: 54598 | 20
靠,你准备做几个序列热备?
你不懂在任意时间点只有一台机器实际工作是一个巨大的浪费么?
我也说了,实际工作中,一般就是一个做热备
总共n=2,砸一下就都挂了
12306现在就没有采用这种做法
【在 n*****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1、不是单机 : 2、随便砸 : 这两个问题回答你无数遍了,你来来回回打滚能不能换个新姿势?不睁着眼睛说瞎话会 : 死啊? : 忘了,应该让你们糊涂下去,或者装糊涂装下去,死了活该。
|
|
|
z****e 发帖数: 54598 | 21
还有一个说了很多遍了
你那个破烂顺序并不是物理客观顺序
本身就是不公平的,当然你自己认为公平
不管怎样,一个现实就是,这个idea上个世纪就有了
现在几乎所有的系统都在淘汰这种搞法
12306就没有用这种搞法,难道不是最响亮的一个耳光?
【在 n*****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1、不是单机 : 2、随便砸 : 这两个问题回答你无数遍了,你来来回回打滚能不能换个新姿势?不睁着眼睛说瞎话会 : 死啊? : 忘了,应该让你们糊涂下去,或者装糊涂装下去,死了活该。
|
g*****y 发帖数: 7271 | 22 你做个简单的分布式系统,再给个估计,多少台机器,达到多少吞吐量。
不要整天12306怎么着怎么着的。那也不是你做的,你连它是不是有票必出都不知道。
到底经不经得起猴子砸。讨论起来没什么意义。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 还有一个说了很多遍了 : 你那个破烂顺序并不是物理客观顺序 : 本身就是不公平的,当然你自己认为公平 : 不管怎样,一个现实就是,这个idea上个世纪就有了 : 现在几乎所有的系统都在淘汰这种搞法 : 12306就没有用这种搞法,难道不是最响亮的一个耳光?
|
z****e 发帖数: 54598 | 23
首先第一个,这种估计没有意义,除非你打算卖机器
真要上的时候,实际测一下再说
我的确没做过12306,但是我说了
类似的public transportation和global payment system我都有经验
对此有怀疑的,我欢迎我跟对赌死全家
老魏就是见到这个就开始哭了
就我所见,老魏的方式,已经不用了
基本上上个世纪是用这种方式搞,尤其是要保证mainframe的稳定
广州那次出了一次事故,结果所有人过年都没过好
至于经不经得起猴子砸,这是目标,怎么实现可以讨论
需求必需经过讨论,明确后才开工,需求都不明确
开工了做什么?浪费时间
【在 g*****y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你做个简单的分布式系统,再给个估计,多少台机器,达到多少吞吐量。 : 不要整天12306怎么着怎么着的。那也不是你做的,你连它是不是有票必出都不知道。 : 到底经不经得起猴子砸。讨论起来没什么意义。
|
z*******r 发帖数: 415 | 24 明白了的意思就是这个东西无法保证正确性,
一个分布cache都不能这么做,更别提用来发rain check的
【在 z*******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 明白了
|
g*****y 发帖数: 7271 | 25 一到实战就缩了,算了,不逼你了。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 首先第一个,这种估计没有意义,除非你打算卖机器 : 真要上的时候,实际测一下再说 : 我的确没做过12306,但是我说了 : 类似的public transportation和global payment system我都有经验 : 对此有怀疑的,我欢迎我跟对赌死全家 : 老魏就是见到这个就开始哭了 : 就我所见,老魏的方式,已经不用了 : 基本上上个世纪是用这种方式搞,尤其是要保证mainframe的稳定 : 广州那次出了一次事故,结果所有人过年都没过好
|
z****e 发帖数: 54598 | 26
我说了,我不卖机器,你要我估计什么?
不服直接发毒誓咯
老魏的trick就是自己先做一个简单的然后测试一下
然后就开始放陷阱要古德霸跳
敢承认么?
【在 g*****y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 一到实战就缩了,算了,不逼你了。
|
g*****y 发帖数: 7271 | 27 有经验然并卵啊!要个分布式方案cost的大致估计都给不出。
老魏这个赌本来说让你们做也可以,不敢接。老魏接了
做下来,还没出最终结果呢,现在已经认为人家挖陷阱
害你们了。
这样很有损专家的形象啊。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 我说了,我不卖机器,你要我估计什么? : 不服直接发毒誓咯 : 老魏的trick就是自己先做一个简单的然后测试一下 : 然后就开始放陷阱要古德霸跳 : 敢承认么?
|
n*****t 发帖数: 22014 | 28 N = 2?不要说外行话了好不好
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 我说了,我不卖机器,你要我估计什么? : 不服直接发毒誓咯 : 老魏的trick就是自己先做一个简单的然后测试一下 : 然后就开始放陷阱要古德霸跳 : 敢承认么?
|
z****e 发帖数: 54598 | 29 lol
那是狗在故意坑古德霸好不好?
【在 g*****y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 有经验然并卵啊!要个分布式方案cost的大致估计都给不出。 : 老魏这个赌本来说让你们做也可以,不敢接。老魏接了 : 做下来,还没出最终结果呢,现在已经认为人家挖陷阱 : 害你们了。 : 这样很有损专家的形象啊。
|
z****e 发帖数: 54598 | 30
lol
那你解释解释
看不懂,不想想啊
【在 n*****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : N = 2?不要说外行话了好不好
|