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

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

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

18571 次点击
所在节点    程序员
175 条回复
howfree
2023-01-05 14:20:35 +08:00
你要能满足那么高并发,不是件简单的事
BrookO
2023-01-05 14:25:57 +08:00
别说技术了,需求能完全整清楚并且表述出来形成需求文档都没几个
fuchish112
2023-01-05 14:26:20 +08:00
我记得 12306 刚出来的时候,经常崩溃,也有一群程序员,不知天高地厚的想要挑战,觉得开发 12306 的都是沙比,殊不知,业务复杂度高得很
0bSer7er
2023-01-05 14:31:06 +08:00
我记得之前看到的,12306 的票不是动态分配的,举例:
A B C 三个站,1000 张票
A-C 800 张
B-C 200 张
第一天开放其中一半的售票,过几天再开放 30%,过几天再把剩下的开放

我记得大概是这个逻辑,如果不对请指正
xrr2016
2023-01-05 14:33:11 +08:00
v2 高手就是多啊🙏🏻
justfindu
2023-01-05 14:33:32 +08:00
不谈抢购什么, 你先把动态分配车票逻辑搞定.
sillydaddy
2023-01-05 14:39:11 +08:00
我觉得#1 说的很对,难度被夸大了。

直到现在,12306 的余票数量还是像量子力学一样,一会儿显示有票一会儿又突然消失一会儿又出现那个数字,然后点进去买票,就显示出票失败。
所以,同步加锁并没有想象的那么严酷。

另外,铁路看起来那么多条挺吓人,但是各个线路是没有关系的啊,所以考虑难度的话,只考虑 1 条线路就好了,1 条还觉得很难吗?

内存方面#1 楼也论证了,几个 G 的内存就足够了,1 台机器不行的话,就多加几台,内存纠错,大带宽同步传输。挺快的。:doge
polobug
2023-01-05 14:39:17 +08:00
为什么要一个人开发。。。
zmqiang
2023-01-05 14:44:18 +08:00
@BrookO 我觉得你说的很有到里,讨论到现在,所有人都是把业务简化到并发的库存管理。对于 12306 整体业务的描述,需要满足的性能指标,很好见到人讨论的。只能说,大多数人讨论的都是理论上是否可行,或者在讨论的是能不能完成一个 demo
Terry05
2023-01-05 14:48:21 +08:00
太简单了,不是随便画个原型,Ai 自动帮你实现了所有功能吗?
1t1y1ILnW0x5nt47
2023-01-05 14:51:38 +08:00
一个 iframe 标签解决
lslqtz
2023-01-05 14:52:30 +08:00
可以, 但是你性能指标不行啊.
ArianX
2023-01-05 15:02:06 +08:00
@kekxv 你说的这些难度不在于研发
tisswb
2023-01-05 15:06:48 +08:00
@nomagick 我同意你的说法,毕竟是卖方市场,只要能解决大并发不崩溃,剩下的可以慢慢售卖,基本不会让人感觉到体验差,甚至体验会更好,想想最后三天抢到票的感觉,晚上睡觉都会笑。
jackbrother
2023-01-05 15:07:52 +08:00
@sam384sp4 牛啊,夏虫不可语冰
ZField
2023-01-05 15:08:09 +08:00
稍微想一想 业务复杂度就很高了……
Huelse
2023-01-05 15:08:25 +08:00
纯线上的话相信大多没啥问题,难的是和线上与线下相统一
picone
2023-01-05 15:11:54 +08:00
@sillydaddy #55 如果这样就更离谱了,一趟列车的座位 20*5*16=1600 个座位左右,假设每个座位都是 32 个停靠站,6.4K 。车次数据网上没查到比较具体的,大概是千次?算 5000 车次 大概是 32M 内存一天。咋一看确实可以,但是还要考虑分部署冗余等问题
codespots
2023-01-05 15:12:48 +08:00
@AyaseEri @maemual 是的。很多人都理解错卖票业务了,并不存在你买了 A-D 的票就影响他买 A-B 的票的情况
SiuRayyy
2023-01-05 15:13:15 +08:00
@sam384sp4 大神🙏🏻

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

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

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

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

© 2021 V2EX