menu LittleJake's Blog
color_lens
avatar
Jake Liu
Never Settle
creative commons by-nc-sa
hit
Category
keyboard_arrow_down

© 2024 LittleJake's Blog.

萌ICP备20223020号

高并发某平台设计构思

整体架构

架构选择

平台并没有采用主流架构:Java Web来处理高并发。由于Java Web的复杂度和迭代性难度大,快速开发的PHP就是不二的代替。

因此,平台使用PHP版本7.2nts,加上Redis处理并发,(MariaDB)MySQL5.6保存计费信息,系统选择为Centos7。Lua作为API直接写Redis,采用OpenResty。

机器配置:Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz + DDR3 RECC 98G

出现的问题

不止在架构上,系统上的破事也挺多的。

  • 系统出现磁盘错误,文件系统直接变RO,需要修复
  • 系统默认配置最大打开文件数hard&soft、连接优化、最大端口使用数
  • Redis默认最大maxclients为10000,高并发下最好使用Redis连接池或者框架支持的persistent长连接
  • MySQL最大连接数100,通过修改my.cnf或者控制台输入set GLOBAL max_connections=1000;
  • (Nginx)OpenResty的吞吐worker设置,缓存时间设置
  • PHP则为增加 pm.max_children的值
  • 数据库和Redis的持久化连接也是减少开销的一种方法:减少连接的开销(连接和断开)

并发测试结果

成绩不算优秀,至少不会崩,等待后续优化。
test1
test2

Buy me a beer
Jake Liu
Never Settle

Title: 高并发某平台设计构思

Author: Jake Liu

Origin:

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) For any re-post you must give appropriate credit.

文章遵循CC许可 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 转载请注明出处

Tag:高并发, openresty, php, centos, lua, redis

评论区

Add a new comment.

Theme