组件图 我们先来看个场景。假设我们有张网然后我们分辨用圆形的石头跟锥形的石头去砸这张网,其成果大家必定都晓得。后者有更大的可能撕破这张网。这个例子拿到站点上也是成破的。对一个站点来说压力最后不可防止的都砸到数据库服务器上了,而这些数据的压力是有轻重之分的。比方强交互的数据就比浮现型的数据对数据库造成的压力要大。我们对站点进行剖析后总能找到为数未几的多少个访问热点,假如我们可能对这些热点问题进行适当处置那么我们的站点服务的品质就可能会提高很多。 接下来先容一下图中各个局部的作用 下面说说我是如何考虑问题的。 总结 可用性,可扩大性,一致性。这三个问题是一个软件要斟酌的问题。三个方面围成一个三角形,周长就是本钱(是钱,开发软件的投入).那么我们如何保持成本始终的情形下提供软件的服务那?本为供给的计划就是一个例子,一个就义一致性来进步软件可用性的例子。(当然咱们会坚持终极一致) 应用缓存逻辑,我们把数据频繁更新的数据从数据库拿到内存中(也能够使其余非中心库)。然后每次拜访我们都操作拿出来的数据而后再在某种策略的驱动下把更改的数据平滑的更新到数据库中。 DB:数据库
ReadUserData:获撤消息队列得到获取那些用户的那些热点信息进而从数据库中获取到数据放入我们的存储中 对于热点问题我想大家确定有其他的解决方案,如果正好您对这个问题思考过望你留下您的倡议。 Store:存储 问题的引出 那么我们是不是可以树立这样一种框架,把热点数据缓冲起来那?下面我就提出一种解决方案来。 解决方案 DataTransferModule:依照一定策略把更改情况写入消息队列 SessionRiskPolicy:保险把持策略,解决相似屏蔽,强迫下线等功效。这里可以是个执行容器当前有新的平安策略可以动态注入执行。 什么是热门问题,热点问题对站点有什么迫害,如何解决热点问题。本文会对这些问题做出我本人的答复。 缓冲是缓解压力最好的措施。像我们的CPU,硬盘你都可以容易找到缓冲的影子。 解决方案摸索 DataControlPolicy:也是一个履行容器,可以对缓存起来的数据进行变革,这些变更不用即时反映到数据库中去 SessionGateGroup:客户端,当用户登录的时候把用户信息写进新闻队列,以便告诉ReadUserData模块获取哪些用户的那些热点信息 --> 引言写在最后 相关的主题文章: (责任编辑:admin) |