打算用PHP写一个日数据量200W的系统,是否现实可行?

48次阅读

共计 1762 个字符,预计需要花费 5 分钟才能阅读完成。

每天只有 3000~5000 人的系统,但产生日数据量在 200W 左右,在下午有 2 个小时的时间是高峰期,有时一分钟插入数据量可达 20W , 这两小时可占全天数据量的 50%。综合来说,插入占 80%,查询占 20%
优先考虑用 PHP 的原因是,团队几个人都只熟悉 PHP。换 JAVA 学习成本高。
PHP 考虑的框架是 Laravel,ThinkPHP 也考虑,但是担心漏洞多。
架构方面,如果仅用用 Laravel + Redis 消息列队上面业务的数据安全吗?或者打算用各家云服务的 SLB+RabbitMQ 解决高峰期数据插入的情况。查询缓存方面用 Redis。
不考虑¥¥的情况下,安全性、稳定性要求高,请问这样的系统,用 PHP 架构是否现实可行?
或者哪位大 JJ 能在前期架构上,能给些建议的,麻烦 PM 我交流一下。有帮助会发红包。

日 200W 数据,也不是很大,确实可以用 PHP 实现的。

Salta 发表于 2023-1-4 18:27
日 200W 数据,也不是很大,确实可以用 PHP 实现的。

但是有 2 个小时并发数据高。只写一下核心的逻辑,自己 mock 下请求,做下压力测试就知道了,这种问题很难回答的

luoluo 发表于 2023-1-4 18:43
但是有 2 个小时并发数据高。

Redis 单机写 每秒 8W 次,读每秒 11 万次,你在担心什么?
PHP,就算撑不住你也可以上 DNS 轮训吧。
话又说回来,就算 redis 撑不住,那也可以上集群担心是多余的,买阿里云,腾讯云的数据库集群,KV 集群。直接上,性能扛不住直接找云客服官方,比啥都强。瓶颈在数据库,和 php 无关写入 20 万 / 分,基本达到 8 核 32G 内存独服跑 MySQL 8.0 的上限了,和 PHP 无关,上队列吧,削峰填谷,或者优化业务,减少不必要的写入光是插入数据那太简单了,直接写到 redis 然后你再慢慢往 mysql 里写灰产?
三方 四方系统?
php 自己写吧

Salta 发表于 2023-1-4 18:51
Redis 单机写 每秒 8W 次,读每秒 11 万次,你在担心什么?
PHP,就算撑不住你也可以上 DNS 轮训吧。

不是担心 redis 撑不住,是担心如果宕机了,redis 会丢数据呢

vihs 发表于 2023-1-4 19:05
担心是多余的,买阿里云,腾讯云的数据库集群,KV 集群。直接上,性能扛不住直接找云客服官方,比啥都强。…

运维不熟悉的我一开始也这么想,想到一天能产生 10g 左右的数据,这个方案成本有点承受不住

whiler 发表于 2023-1-4 19:09
写入 20 万 / 分,基本达到 8 核 32G 内存独服跑 MySQL 8.0 的上限了,和 PHP 无关,上队列吧,削峰填谷,或者 …

平均是 20w 一分钟,但是也不排除有 1 秒 5w 的数据插入的时候

whiler 发表于 2023-1-4 19:09
写入 20 万 / 分,基本达到 8 核 32G 内存独服跑 MySQL 8.0 的上限了,和 PHP 无关,上队列吧,削峰填谷,或者 …

对呀,就是考虑列队,不知道 laravel 支持 redis 列队,不知道这个方案若是在宕机情况下,能不能保证数据安全。

luoluo 发表于 2023-1-4 20:33
不是担心 redis 撑不住,是担心如果宕机了,redis 会丢数据呢

Redis AOF 持久化了解一下?
打算用 PHP 写一个日数据量 200W 的系统,是否现实可行?

luoluo 发表于 2023-1-4 20:39
对呀,就是考虑列队,不知道 laravel 支持 redis 列队,不知道这个方案若是在宕机情况下,能不能保证数据安全 …

写多读少还要保证数据不丢,完美契合 Cassandra
可以看看它,性能不弱,水平扩展,磁盘存储,宕机也不担心丢数据,适合存储大规模数据 laravel 漏洞这块问题不大。
性能这边做好心理准备,laravel 性能指标这块不能算是强项。

luoluo 发表于 2023-1-4 20:35
运维不熟悉的我一开始也这么想,想到一天能产生 10g 左右的数据,这个方案成本有点承受不住 …

你的想法恰恰相反。
1、这么大数据量,更需要数据安全,公司又不是你的,不需要你考虑成本。你替公司省钱,出了事情你背锅,纯粹吃饱了撑的。
2、数据量很大又很重要,请一个 DBA 的工资保守计算每月 1.5W 一年就是 18W+ , 还不算硬件投入,买云数据库怎么算都划算。可以考虑异步的 nodejs 几千人 如果业务没有交集的话,完全可以分库嘛?分五个,一千人一个库。

正文完
 0