高性能并发系统架构应该如何设计?关键是什么?

Posted 今天付出是为明天回报

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高性能并发系统架构应该如何设计?关键是什么?相关的知识,希望对你有一定的参考价值。

1)  优化前端网页 

  • 充分利用CDN,使JS、图片等静态资源的请求能够就近访问(顺便说一下,如果12306订票插件能从google提供的http://cdnjs.com中引用JS,而不去直接引用github的JS,就不会把github搞瘫了)。
  • 将JS、CSS合并,最小化请求数。将JS和CSS压缩,最小化数据传输
  • 启用gzip压缩网页。


2)  群集分发和调度 

据说12306是采用集中式构架的,集中式构架很难应对高并发,也很难水平扩容,分布式不是仅仅将调度服务器,应用服务器,缓存服务器,数据库服务器分开就行,应该进行更细的服务级划分,对业务进行服务细分,做成一个个松散耦合的服务,然后把这些服务独立分布式部署。 

3)  采用分布式会话 

为了可以进行灵活的请求调度,不应采用weblogic、websphere这些应用服务器自身的session管理用户会话,而应该自己管理会话,如将会话保存在独立的集群memcached服务器中,这样每个应用服务就都无状态了,会话的请求可以随意分发给不同的服务器。这也是我的ROP开源项目没有使用HttpSession,而专门抽象出一个SessionManager接口的原因,开发者应该自己去实现这个接口实现分布式会话管理。 

4)  关于数据库设计优化 

数据库往往是系统瓶颈所在,首先应该对数据库进行分库设计,可采用两级水平切割,如首先切割成几个物理库,然后在物理库内部再采用表分割,一般是通过某个业务ID进行取模切割,降低单库及单表的并发性,提高TPS。 

合理采用读写分离技术,做到读写分离,可以一写多读,有效降低数据库的负载,数据的同步可以视情况采取应用层同步写,读取数据库日志更新或直接使用mysql读写分离技术等。 

此外,业务服务化、服务解耦化是关键。

 

 

http://blog.csdn.net/blogdevteam/article/details/8572108

以上是关于高性能并发系统架构应该如何设计?关键是什么?的主要内容,如果未能解决你的问题,请参考以下文章

如何搭建亿级并发的系统架构?

成为架构师课程系列高并发系统设计的三大目标:高性能高可用可扩展

成为架构师课程系列怎样进行高性能高可用的高并发系统的设计?

秒杀系统设计方案

「绝密档案」“爆料”完整秒杀架构的设计到技术关键点的“八卦追踪”

设计一个高并发高性能系统需要考虑哪些方面