移动互联后台,如何实现高并发?(支持3000+每秒)

marskbt 2014-05-13 04:06:22

公司移动互联的系统的框架,设计思路如下:

基于业务,分为WEB端后台与手机端后台。

WEB端后台主要用于管理员登陆后台系统,采用JBOSS作为应用服务器,STRUTS+EJB+MYSQL 搭建。

手机端比较复杂,为了处理高并发问题,用了NGINX + TOMCAT + MEMCACHED + MYBATIS +MYSQL (MASTER/SLAVE 读写分离)的集群解决方案。

手机与后台交互方式分为两种,HTTP/HTTPS手机端拉数据的方式,以及基于XMPP/ANDROIDPN的主动推的数据交互方式。

现在主要问题,为了达到3000+的并发和处理能力,NGINX + 3 台部署了TOMCAT的服务器。手机这边每次业务访问,都会去MEMCACHED里面获取相关的缓存数据,缓存内没有的话,去数据库抓取数据(MYSQL,一主三从,3个TOMCAT分别读取不同的SLAVE MYSQL)

现在基本架构已经完成,完成了一个目标业务模块(DEMO),但是效果不是很理想,TPS 大于 3S,同时并发 3000+,做压力测试2小时后,TOMCAT 处理速度大于2分钟,造成大量访问堆积。

但是服务器CPU和内存占用率都不高,现在考虑是不是考虑后台处理采用JAVA并发编程机制。业务操作比较复杂。

但这块心里没底,不知道最后效果如何。现在核心业务还没开始具体编写,想确认具体架构的稳定性以及处理能力。

以后还需要独立的一台/几台服务器作为主动推送服务器,这块现在还没开始具体设计,只是重写了部分ANDROIDPN源码满足业务。

特此在论坛上问问大家有没有相关好的处理方式?跪求建议与指导,谢谢!!
...全文
1348 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
holmes1214 2015-02-11
  • 打赏
  • 举报
回复
jprofiler
MiceRice 2014-05-13
  • 打赏
  • 举报
回复
引用 5 楼 marskbt 的回复:
哈哈,好的,感觉有点方向了,谢谢!
如有新的检测信息,欢迎继续探讨。
marskbt 2014-05-13
  • 打赏
  • 举报
回复
引用 4 楼 ldh911 的回复:
手机交互应该用JSON更好些,流量小。 我不认为是拼装数据,拼装数据是计算密集型过程,而你说CPU负载很低。 线程池先放到一个比较高的规模,比如总额均为目标并发数的 1/5 。 一般来说,CPU负载低都是两类情况: 1、线程池规模不足,请求都实际上都在排队等Nginx或Tomcat分配执行线程; 2、程序确实有问题,因为并发锁等原因,线程们都在排队等某个竞争资源。
哈哈,好的,感觉有点方向了,谢谢!
MiceRice 2014-05-13
  • 打赏
  • 举报
回复
手机交互应该用JSON更好些,流量小。 我不认为是拼装数据,拼装数据是计算密集型过程,而你说CPU负载很低。 线程池先放到一个比较高的规模,比如总额均为目标并发数的 1/5 。 一般来说,CPU负载低都是两类情况: 1、线程池规模不足,请求都实际上都在排队等Nginx或Tomcat分配执行线程; 2、程序确实有问题,因为并发锁等原因,线程们都在排队等某个竞争资源。
marskbt 2014-05-13
  • 打赏
  • 举报
回复
引用 2 楼 ldh911 的回复:
[quote=引用 楼主 marskbt 的回复:] 现在基本架构已经完成,完成了一个目标业务模块(DEMO),但是效果不是很理想,TPS 大于 3S,同时并发 3000+,做压力测试2小时后,TOMCAT 处理速度大于2分钟,造成大量访问堆积。 但是服务器CPU和内存占用率都不高,现在考虑是不是考虑后台处理采用JAVA并发编程机制。
做了瓶颈分析么?这个2分钟,都花在哪个环节了?比较怀疑是配置存在问题,有无确保各环节的线程池和连接池数量?[/quote] 没有做过完整的瓶颈分析,目前怀疑在拼装数据上,Memcached内存的是JSON格式数据,与手机交互用的是XML,存在JSON -> XML的性能消耗。 线程池和连接池数量还在研究,TOMCAT线程池还在研究,具体配到哪个程度,现在还没谱。。。。
MiceRice 2014-05-13
  • 打赏
  • 举报
回复
引用 楼主 marskbt 的回复:
现在基本架构已经完成,完成了一个目标业务模块(DEMO),但是效果不是很理想,TPS 大于 3S,同时并发 3000+,做压力测试2小时后,TOMCAT 处理速度大于2分钟,造成大量访问堆积。 但是服务器CPU和内存占用率都不高,现在考虑是不是考虑后台处理采用JAVA并发编程机制。
做了瓶颈分析么?这个2分钟,都花在哪个环节了?比较怀疑是配置存在问题,有无确保各环节的线程池和连接池数量?
marskbt 2014-05-13
  • 打赏
  • 举报
回复
顶下!~~~~~~~~~~~~~~~

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧