项目准备重构,来问问论坛的大佬

现在项目是外包的,thinkphp5.0,由于公司发展非常快,准备重构,想问问大佬。
是个游戏联运项目,有后端和jssdk
准备重构成一个独立的项目,jssdk可以沿用以前的优化下就行,保持以前的项目继续运行,后续功能都在重构的项目上去增加。

  1. 我们的瞬时并发有时非常高(都是可以预见的高并发),目前最高能有1w+,最高的时候,我开了12台服务器都还有点卡
  2. 数据的增长也非常快,已经好几个表都几百万行,根据现在的情况,负荷很担心到极限
  3. 服务器是阿里云,redis是单独一台ECS,数据库是阿里云RDS,负载均衡是阿里云CLB,

相信大佬们也知道,可以预见的高并非,服务器增加很简单,负载均衡也很好调。唯独数据库RDS有点难搞,虽然RDS有数据库代理,但是增加RDS也是非常费时的,没有ECS那样开启关闭简单。

现在重构准备用laravel,不知道选哪个框架,laravel-s靠谱不,能不能用于生产?
RDS有没有办法解决下,突破瓶颈?
暂时只有这些,大佬们如果有好的建议,可以告诉下

GDDD
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案

既然已知数据库是目前最大瓶颈所在,那应该在减少数据库读写方面下功夫,或者是把某些表的存储更换为其他数据库,而不是花时间在换语言、框架上

5天前 评论
GDDD (楼主) 5天前
Aliliin 1天前
朝东 1天前
讨论数量: 48
leo

既然已知数据库是目前最大瓶颈所在,那应该在减少数据库读写方面下功夫,或者是把某些表的存储更换为其他数据库,而不是花时间在换语言、框架上

5天前 评论
GDDD (楼主) 5天前
Aliliin 1天前
朝东 1天前

TP换Laravel,感觉作用不大

4天前 评论
Hello_Smile 1天前
leo

既然已知数据库是目前最大瓶颈所在,那应该在减少数据库读写方面下功夫,或者是把某些表的存储更换为其他数据库,而不是花时间在换语言、框架上

5天前 评论
GDDD (楼主) 5天前
Aliliin 1天前
朝东 1天前

TP换Laravel,感觉作用不大

4天前 评论
Hello_Smile 1天前
╰ゝSakura

用golang

5天前 评论

上Golang吧,没对比没体会,对比后真的差距很大!另外建议加强数据库优化、架构调整相关工作

4天前 评论

换java吧

5天前 评论
GDDD (楼主) 5天前
qufo 4天前

如果用php 也要追求性能那就hyperf(有几个项目稳定运行)吧 webman也可以(没用过 相信workman的大佬出的肯定很稳 :+1: )

5天前 评论
GDDD (楼主) 5天前
Silly-dog 5天前
Silly-dog 5天前

建议不要唯框架论,事实上大部分系统扩容第一个撑不住的地方都是DB

建议:

  • 对于大并发的性能瓶颈接口做分析处理,优化(减少DB查询,复杂查询变简单查询,缓存等)
  • 如果不想停机迁移,重构可以按照接口逐步灰度替换,持续迭代,另外重构时充分考虑DB的优化
5天前 评论

和我司很像,被直接springcloud重构了

5天前 评论

除非swoole,PHP-FPM不支持数据库连接池,并发上不去。

5天前 评论
mowangjuanzi 4天前
Hello_Smile 1天前
mowangjuanzi 1天前

为啥要重构?而且是在业务高峰期,给自己找事,让自己滚蛋?REDIS的问题,就单独针对REDIS,数据库的问题,就单独针对数据库,你表才几百万条记录,我的表都有几亿条,记得分区,分区也就是分表

4天前 评论

给信息量还不是很多,不好判断。所用的ECS配置和阿里云相关服务的配置信息并没有给出。 ThinkPHP 5.x跑到10000并发挺可以了。

首先要确定优化目标,是觉得系统难维护要重构,还是性能瓶颈,如果是性能瓶颈,瓶颈关键点是啥。有了目标方向才能确定优化方案,而不是上来就重写。

  • 如果是RDS慢,可以考虑阿里云PolarDB,可靠性更强。
  • DB 索引是否有加,有时是否有索引,性能几百上千倍好差。还有Cache。
  • 百万的表不算大,千万级后性能下滑明显。
  • 如果是可以预见的高并发,可以定时伸缩,使用抢占式ECS,一个月成本应该是可以接受的。
  • 阿里云也是有Redis服务的,是不能满足需求么,要自己用ECS来构建。
  • 没有实际测过Laravel VS THinkPHP,但推测可能更慢或者差不多。
  • 重写是一个大工程。

以上说的可能不对,仅供参考!

12小时前 评论
陈先生

laravel-s 高可用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

5天前 评论
游离不2 5天前
陈先生 (作者) 4天前
GDDD (楼主) 5天前
幽弥狂

如果还想用PHP 的话 建议 Hyperf ,真的觉得项目DB 压力比较大的话可以先优化DB。

5天前 评论

laravel 就 octane 吧,其他php框架 就 Hyperf 吧

5天前 评论
liziyu 3天前

框架可以按上面的朋友建议换Hyperf。瓶颈在数据库还是重点优化mysql,根据场景可以多多利用缓存,优化索引,增加读写分离,主库基本只有写请求,从库的读请求根据请求并发量做扩容就比较容易。

4天前 评论
fatrbaby

左耳听风的架构第一原则是激进胜于保守。

4天前 评论

Hyperf用于生产环境可能产生未知bug,慎用; 楼主重点应放在DB优化上,辅以Nosql和MQ; 最后,如果项目真的钱景好,还是用golang或者java重构吧。

4天前 评论
91it 3天前
╰ゝSakura 14小时前

我司也是PHP 目前用的webman,常驻内存型http框架 workerman系列产品

4天前 评论

要hyperf可以降低PHP的CPU消耗,目前hyperf已经很成熟了,我们公司都用来做几个项目了。如果是数据库压力,就优化数据库吧。

4天前 评论

个人建议用swoole 可以考虑imiphp,easyswoole ,hyperf workman 必然使用webman 非常靠谱性能很高 、laravels如果你原来是laravel或者lumen直接加速用还可以,但是你是tp还是别用这个了

4天前 评论
skarner

楼上的建议是认真的吗 ?
本来就是重构,如果用 swoole 相关的方案,为什么不直接用 laravel + octane 呢?

个人建议,要么就 Laravel + octane
要么就换语言(golang / java)重构

4天前 评论

首先,你的主要意思是重构,然后想知道一下用哪个框架或者哪个版本比较适用于你现在现有业务的现状,也就是数据库瓶颈,那么问题就清晰了,你用哪个版本的框架都不会很明显的解决你数据库压力大的瓶颈。你提到了用laravel-s, swoole确实可以实现提高效率的问题,但是只是提高代码执行效率,狭义点理解就在于读硬盘还是读内存的区别,然后你项目的瓶颈在数据库,所以你方向要找对,换个角度从数据库着手,框架只是易于我们管理的项目的工具。 其次,如果你们公司所有的业务都是在php上,所有团队成员都是phper,语言没得选择的话,那么一定推荐你用laravel或是luman框架,优雅且易于管理,但是效率是确实没有优势,甚至不如thinkphp。

1天前 评论

laravel + octane 并不能有很高的提升,最多有个40%-50%,octane 没有使用的Swoole的协程,用的还是多进程。

1天前 评论
aodaobi 10小时前

用java或go,趁机内部转,参与项目。

3天前 评论

换框架不能解决瓶颈

9小时前 评论

建议go, 找几个会php的goper 先重写业务 在逐步迭代

1天前 评论
baitongda

这个很潮。。。我受用了。但还是清楚太多没有掌握了

1天前 评论

图省事上阿里云函数计算,根据请求量自动扩容资源 自己搞优化并发还是上Golang吧

5天前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!