关于各地区并发高的解决思路

各位同仁,目前各地区云平台的因非冠病毒引发的学生大量使用,对云平台的并发能力要求极高。单台服务器应对教师用户是完全可以通过优化解决的,但如果再加上十几倍的学生用户,就不是一台服务器可以处理的事情了。经分析,我个人认为主要的矛盾点在于MYSQL数据库的压力太高,究其原因有两个:
(1)研发人员没有很好的通过缓存对数据库进行保护,造成大量查询穿透。
(2)数据库到目前为止,没有横向扩展的能力。

第一个原因历史很久,短时间内无法根本解决,目前只能通过技术方案+堆硬件服务器(注意:最好是多台物理服务器,如果是虚拟服务器,在CPU运算和IO处理上可能还会存在瓶颈,需要向各地区明确提出要求,我司在实验时可能VM进行实验。)的方式对数据库进行平行扩展。

思路如下:

(1)将主库通过主从复制方法,改造成1拖N方式。参考资料如下:
    MariaDB 10.3 主从复制
    https://blog.51cto.com/aimax/2123440
        这个以前云平台有过相关的实验经历,实施起来难度不大。

(2)现阶段需在要代码层面修改读写分离,不太现实,云平台的终端较多,比如Openresty+Lua,Jfinal,WinForm,Python等等,全面改造几乎不可能完成。可以考虑尝试使用mycat数据库中间件进行实验尝试,一旦OK,马上可以上线,成本低。
        参考资料:
        mysql之20分钟用mycat搞定mysql读写分离
        https://www.seoxiehui.cn/article-18669-1.html
        成本估算:搭建实验,预计需要一天的时间,对于云平台部署多套进行相应实验,预计两到三天的时间,即四天左右会有准确的答案,目前个人对于此方案保持乐观态度。特别需要指出的时,由于数据库平行扩展,对应的sphinx引擎也是每台mysql单独配置一个sphinx引擎,并且通过sphinxse的方法通过mysql协议进行调用。

原文地址:https://www.cnblogs.com/littlehb/p/12271900.html