作为程序员,你可以开发一个 12306 嘛

2023-01-05 11:01:29 +08:00
 mobaijun

或者在原理上该如何实现一个 12306 ,技术难点有哪些,欢迎大家讨论

18571 次点击
所在节点    程序员
175 条回复
akira
2023-01-05 13:26:12 +08:00
大部分程序员都没有这么大并发的经验
cnkuner
2023-01-05 13:38:10 +08:00
先不谈技术实现,能把需求文档写清楚再说。
ABCDEF……Z 个站,卖出一张 AD 的票,AB 、BC 、CD 、AC 、BD 就要减少一张,这个数据库怎么改,前后端怎么同步,怎么压低超售概率,锁票逻辑,想想就让人头大。
xloger
2023-01-05 13:44:06 +08:00
主要难点还是流量大啊。那些个说卖票算法多复杂的,不如看看现在 12306 的算法,也不咋地啊。
今天抢火车票,又是传统的只有终点站有票其他没票。然后看心情隔几天发几张,这种算法我上我也行啊=。=
yaphets666
2023-01-05 13:44:45 +08:00
从实际体验上来说,卖票算法并不智能,也完全没做到什么能让 60%的人买上票这么神。
murmur
2023-01-05 13:45:34 +08:00
@xloger 这才是符合商业利益的算法啊,补票的时候就直接不装了,谁买全程谁就优先排队
dobelee
2023-01-05 13:46:53 +08:00
搞得我以为 12306 不是程序员开发的。
glfpes
2023-01-05 13:47:32 +08:00
12306 多少也是个千人起步的系统,能 hold 住技术这一块的最最起码是个大厂的 VP ,这个是 CTO 岗位。

扪心问一下自己。。。让你当 CTO ,你有这个能力不。
fengye0509
2023-01-05 13:51:20 +08:00
难度不是在上亿级别的并发吗?
xloger
2023-01-05 13:53:11 +08:00
@murmur #45 对的,所以我现在就很绝望,ABCDEFGHIJK 这几个车站,我这次是抢 A 到 I 的,硬是一到发售就没了,我怀疑压根没放票,而 A 到 K 的,我现在看还是“有”。
我看了到 J 的也是一张都没有。合着只有起始到终点站的呗,然后候补也不知道啥时候是个头,影响后续规划。
等到候补到了没几天了,然后其他日期的票要退,又是一笔手续费。12306 赚麻了。
cstj0505
2023-01-05 13:55:45 +08:00
@DOLLOR 是的,上来就技术的一看就离谱,真正主导做过系统的哪有这么搞的
nomagick
2023-01-05 13:59:48 +08:00
你们都太负责任了,想得太复杂。

实际上 12306 是玩忽职守的,售票是随意决定的。

将所有可能的票按类型提前分配好,就像数据库分区一样,分到具体节点,每个节点负责一小部分票。

售票的时候,负载均衡将用户分配到售票节点。
分给你的节点卖光了,就跟你说没票。即便全局来看其他的节点还有票。

平常的时候一列车就一个售票节点,余票是可靠的,就剩一张票你也能买到,春运的时候一列车一排节点,
余票是不可靠的,你买到票的概率是随机的。
fuwu1245
2023-01-05 14:03:01 +08:00
就第一眼的需求
感觉自己写不了,好复杂,可能我的经验还不够
8355
2023-01-05 14:03:10 +08:00
@cnkuner #42 补充一个还要票务分配 线上线下每日比例放票 海量的线下窗口各种客户端都在疯狂出票
raycool
2023-01-05 14:04:11 +08:00
铁路上的票是预分配好的
sillydaddy
2023-01-05 14:04:53 +08:00
@picone #5
#1 楼说的是区间是不是有票,比如 A11 这个座位的值是 00111100 ,就表示 A11 座位从第 3 站到第 6 站这 4 站的票已经有人占用了。余票数量跟这个没关系。
mozhizhu
2023-01-05 14:05:37 +08:00
这么多年的购票经历来看; 3000 块,只参与买票,不能参与卖票
yogogo
2023-01-05 14:07:11 +08:00
抢得是位置,而不是票
monkeyblog
2023-01-05 14:11:20 +08:00
我同学大学本科毕设就是抢票工具 接口确实免费,可以参考下 https://www.bypass.cn/
wei2629
2023-01-05 14:13:13 +08:00
@nomagick 我觉得你说的有道理啊。从外面看似系统遵守业务规则,其实从内部看做了很多妥协。
Jooooooooo
2023-01-05 14:18:55 +08:00
先说一点, 各个站的票数是写死的, 并不是动态算的.

我回家是 A -> B -> C 的中间站 B, A -> B 每次应该是只有 2 张票, 我买不到, 都是直接买 A -> C 的.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/906691

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX