标签:http ar java 数据 问题 时间 as 服务器 tt
最近项目一上线,就问题颇多,本地测试,ok,上线后,大用户量的时候,顶不住。用了一个礼拜的时间发现的问题,总结下来。
项目是netty4.0,reids2.8,nginx等框架。目前是4台proxy服务器,一台核心服务器,reids只部署在核心服务器上,各代理服务器共享redis数据。
当大量用户访问自己距离较近的proxy服务器时,proxy同时请求核心服务器,并发量到1w时,经常请求卡死,网页请求不回来,开始从netty的http处理并发下手,各种netty的官网,netty的优化,和配置,都修改了,还是没有起作用,后来屏蔽redis后,发现netty处理20w并发一点问题没有,问题确定在redis上。
然后,着手redis的优化,redis的池的优化,配置,没有作用,后台发现,本地访问redis并发1w,很快,但是,访问其他服务器的redis特别卡,发现原因,就在于,跨服务器访问redis,可能由于网络,跨服务器,导致的并发请求redis,回不来的问题,那么,最后,舍弃了proxy服务器远程调用核心服务器reids的方案,nginx改为所有心跳请求,跨过proxy服务器,直接走核心服务器,这样相当于本地访问redis,最后担心核心服务器并发能力,暂时,开启了2个服务,处理所有并发,reids问题得到解决。
总结:就是reids本身性能没有问题,处理并发能力ok,就是跨服务器远程访问其他服务器reids时,并发大了,网络延迟等,会出现取reids卡死。
标签:http ar java 数据 问题 时间 as 服务器 tt
原文地址:http://my.oschina.net/aicoding/blog/338136