每天只有3000~5000人的系统,但产生日数据量在200W左右,在下午有2个小时的时间是高峰期,有时一分钟插入数据量可达20W ,这两小时可占全天数据量的50%。综合来说,插入占80%,查询占20%
优先考虑用PHP的原因是,团队几个人都只熟悉PHP。换JAVA学习成本高。
PHP考虑的框架是Laravel ,ThinkPHP也考虑,但是担心漏洞多。
架构方面,如果仅用用Laravel + Redis消息列队上面业务的数据安全吗?或者打算用各家云服务的 SLB+RabbitMQ 解决高峰期数据插入的情况。查询缓存方面用Redis。
不考虑¥¥的情况下,安全性、稳定性要求高,请问这样的系统,用PHP架构是否现实可行?
或者哪位大JJ能在前期架构上,能给些建议的,麻烦PM我交流一下。有帮助会发红包。
热议
推荐楼 vihs 3天前
运维不熟悉的我一开始也这么想,想到一天能产生10g左右的数据,这个方案成本有点承受不住 ...
你的想法恰恰相反。
1、这么大数据量,更需要数据安全,公司又不是你的,不需要你考虑成本。你替公司省钱,出了事情你背锅,纯粹吃饱了撑的。
2、数据量很大又很重要,请一个DBA的工资保守计算每月1.5W 一年就是18W+ , 还不算硬件投入,买云数据库怎么算都划算。
2楼 Salta 3天前
日200W数据,也不是很大,确实可以用PHP实现的。
3楼 luoluo 3天前
日200W数据,也不是很大,确实可以用PHP实现的。
但是有2个小时并发数据高。
4楼 shwish 3天前
只写一下核心的逻辑,自己mock下请求,做下压力测试就知道了,这种问题很难回答的
5楼 Salta 3天前
但是有2个小时并发数据高。
Redis单机写 每秒8W次, 读每秒11万次,你在担心什么?
PHP,就算撑不住你也可以上DNS轮训吧。
话又说回来,就算redis撑不住,那也可以上集群
6楼 vihs 3天前
担心是多余的,买阿里云,腾讯云的数据库集群,KV集群。直接上,性能扛不住直接找云客服官方,比啥都强。
7楼 1121744186 3天前
瓶颈在数据库,和php无关
8楼 whiler 3天前
写入 20万/分,基本达到 8 核 32G 内存独服跑 MySQL 8.0 的上限了,和 PHP 无关,上队列吧,削峰填谷,或者优化业务,减少不必要的写入
9楼 holinhot 3天前
光是插入数据那太简单了,直接写到redis然后你再慢慢往mysql里写
10楼 有容乃大 3天前
灰产?
三方 四方系统?
php自己写吧
12楼 luoluo 3天前
vihs 发表于 2023-1-4 19:05
担心是多余的,买阿里云,腾讯云的数据库集群,KV集群。直接上,性能扛不住直接找云客服官方,比啥都强。 ...
运维不熟悉的我一开始也这么想,想到一天能产生10g左右的数据,这个方案成本有点承受不住
13楼 luoluo 3天前
whiler 发表于 2023-1-4 19:09
写入 20万/分,基本达到 8 核 32G 内存独服跑 MySQL 8.0 的上限了,和 PHP 无关,上队列吧,削峰填谷,或者 ...
平均是20w一分钟,但是也不排除有1秒5w的数据插入的时候
14楼 luoluo 3天前
whiler 发表于 2023-1-4 19:09
写入 20万/分,基本达到 8 核 32G 内存独服跑 MySQL 8.0 的上限了,和 PHP 无关,上队列吧,削峰填谷,或者 ...
对呀,就是考虑列队,不知道laravel支持redis列队,不知道这个方案若是在宕机情况下,能不能保证数据安全。
15楼 Salta 3天前
不是担心redis撑不住,是担心如果宕机了,redis会丢数据呢
16楼 whiler 3天前
对呀,就是考虑列队,不知道laravel支持redis列队,不知道这个方案若是在宕机情况下,能不能保证数据安全 ...
写多读少还要保证数据不丢,完美契合 Cassandra
可以看看它,性能不弱,水平扩展,磁盘存储,宕机也不担心丢数据,适合存储大规模数据
17楼 flyqie 3天前
laravel漏洞这块问题不大。
性能这边做好心理准备,laravel性能指标这块不能算是强项。
18楼 vihs 3天前
运维不熟悉的我一开始也这么想,想到一天能产生10g左右的数据,这个方案成本有点承受不住 ...
你的想法恰恰相反。
1、这么大数据量,更需要数据安全,公司又不是你的,不需要你考虑成本。你替公司省钱,出了事情你背锅,纯粹吃饱了撑的。
2、数据量很大又很重要,请一个DBA的工资保守计算每月1.5W 一年就是18W+ , 还不算硬件投入,买云数据库怎么算都划算。
19楼 mfch666 3天前
可以考虑异步的 nodejs
20楼 theoneman 3天前
几千人 如果业务没有交集的话,完全可以分库嘛? 分五个,一千人一个库。
22楼 静香 前天16:57
上springcloud数据存储用mysql 缓存用redis
插入量大的话在内存中做个队列缓存然后批量save
23楼 小怪 前天17:01
用java嘛
24楼 zlwzlx 前天17:28
laravel 的性能不是强行 需要做好心理准备,这种数据量 设计时就应该考虑 程序可分布式运行,性能不行就堆机器,上队列异步插入,不要用redis做队列 用更成熟的kafka这类的。mysql,redis,kafka 这些建议直接上云服务商的 集群。
能做到这些基本没啥大问题
25楼 拉斯 前天17:30
算下来每秒不到一万,数据库没问题,不知道你这个日志是怎么产生的,如果不是访问一次接口产生一条日志用php问题就不大,
26楼 hzjdhr 前天17:32
对呀,就是考虑列队,不知道laravel支持redis列队,不知道这个方案若是在宕机情况下,能不能保证数据安全 ...
laravel 肯定是支持redis队列的, 自带就有 用着很方便
27楼 Backkom 前天17:35
redis集群然后持久化写入mysql呗
28楼 kagurazakashira 前天17:35
没遇到过这么高的场景
最高的是以前一个公司的1月1e条,设备每秒上传日志用的
然后老板钱多堆配置,512core 内存好像是1t,硬盘不确定是hdd还是ssd还是nvme组的阵列
跑的php5.2+mysql5.1
没有任何优化
写入很丝滑,只有查询慢
29楼 诡谲 前天17:39
换webman laravel转过来没压力
30楼 奧巴马 前天17:41
PHP做过每秒并发3万(写入肯定不止3万,单日志就3万了).
放内存里面跑,然后主从分,每月分一次表.
32楼 MukaichiMion 前天18:51
关键是看数据是怎么来的,是通过HTTP接口来的还是怎么来的
如果是HTTP接口的话,直接用负载均衡就可以搞定
单机Redis都能随便抗万级的QPS,只是为了防止数据丢失,最好是往ES里面转移,数据量大了后,查询走ES会比Redis更好
33楼 luoluo 昨天18:00
zlwzlx 发表于 2023-1-5 17:28
laravel 的性能不是强行 需要做好心理准备,这种数据量 设计时就应该考虑 程序可分布式运行,性能不行就堆 ...
上laravel是考虑到安全性,感觉tp的洞洞太多了,并发和业务不复杂,单用户一条post能产生几百几千条数据。但只有2000 3000个用户而已。
34楼 luoluo 昨天18:02
MukaichiMion 发表于 2023-1-5 18:51
关键是看数据是怎么来的,是通过HTTP接口来的还是怎么来的
如果是HTTP接口的话,直接用负载均衡就可以搞定
...
是从http来的,就一条post,按需产生几百几千条数据。
35楼 luoluo 昨天18:04
拉斯 发表于 2023-1-5 17:30
算下来每秒不到一万,数据库没问题,不知道你这个日志是怎么产生的,如果不是访问一次接口产生一条日志用ph ...
mysql数据库每秒2000插入就已经差不多了吧
36楼 拉斯 昨天18:27
mysql数据库每秒2000插入就已经差不多了吧
不考虑钱就上云数据库,这个只能自己本地压测,一般索引不多能顶住的。
37楼 luoluo 昨天22:31
算下来每秒不到一万,数据库没问题,不知道你这个日志是怎么产生的,如果不是访问一次接口产生一条日志用ph ...
记录是1用户post一次,大概要插入几百到几千条数据不等。
38楼 luoluo 昨天22:32
PHP做过每秒并发3万(写入肯定不止3万,单日志就3万了).
放内存里面跑,然后主从分,每月分一次表. ...
求方案,能不能细说一下
39楼 Sage 昨天22:41
MQ够了
40楼 伊丽莎白 2小时前
瓶颈在数据库io这数据库带的动。用队列慢慢跑吧
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
谷姐靓号网




评论前必须登录!
立即登录 注册