浅谈高并发解决方案

摘要: 高并发一直是然个人头疼的问题;然而,其解决方式则是一套组合策略,由整体入手,逐步分析,逐步解决部分问题,进而解决所有问题;就像一支庞大的输水管道,不断的做分支导流,每层的分支可以导出部分的流量,继而顺利导出所有的流量。

总体思路:优化代码,分离业务逻辑,数据库,最后加服务器等;

逐步解决方案,具体操作如下:

(1).页面的动静分离:

页面生成了静态的缓存,页面中的图片、JS等静态资源推CDN;

动态数据,能做缓存的做缓存(redis,memache);不能做缓存的,开始从代码层面下着手;

(2).代码层面的优化:

找到执行时间较长的脚本,着手分析,是否可以优化业务逻辑;

如果业务逻辑已经无法优化,考虑是不是数据库操作执行时间较长,如果是,开始从数据库层面着手;

(3).数据库层面的优化:

找到操作频繁,看是够能够优化sql语句,如连表查询等等;

如果还是到不到要求,对于操作频繁且数据库操作较大的数据,进行读写分离;

如果速度还是达不到要求,考虑是不是单张数据表的问题了;

(4).数据表层面的优化:

如果是数据表中数据量过大,导致查询速度慢的:数据分片,横向切表;

如果是数据表查询数据过多,导致查询数据慢的,纵向切表,使热点数据和非热点数据分离;

如果速度还是没有到达要求,那么恭喜你,你已经成功的积累了相当的用户量了,加服务器吧,做负载均衡吧。

(5).升级硬件,加服务器,做负载均衡。

补充:

1.针对非及时响应的业务,可以做队列,进行延时处理,以便后期统一处理;例如可以委托中间件(就像老板请的秘书),性能提升体现在写入数据时锁表时间的节省;

2.针对临时的热点活动类型业务,为了防止崩溃,可是使用独立的服务器,避免由于活动服务器的崩溃而导致其他主要业务服务器的崩溃。

原文发布于微信公众号 - JAVA高级架构(gaojijiagou)

原文发表时间:2017-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术分享

RBAC新解:基于资源的权限管理(Resource-Based Access Control)

本文讨论以角色概念进行的权限管理策略及主要以基于角色的机制进行权限管理是远远不够的。同时我将讨论一种我认为更好的权限管理方式。 什么是角色 当说到程序的权限管理...

7637
来自专栏编程心路

GitHub学习文档-1

首先 GitHub 是一个平台级的软件,在 PC端,网页端,手机端都有相应的应用,下面都是根据 GitHub 的网页端介绍的。GitHub 可以看做是一个面向开...

1426
来自专栏程序人生

再谈 API 的撰写 - 架构

在 再谈 API 的撰写 - 总览 里我们谈到了做一个 API 系统的基本思路和一些组件的选型,今天谈谈架构。 部署 首先要考虑的架构是部署的架构。部署的方案往...

4877
来自专栏编程微刊

微信小游戏跳一跳外挂教程(安卓版)

3582
来自专栏编程坑太多

『高级篇』docker之微服务业务分析(九)

1403
来自专栏DevOps时代的专栏

istio 是啥?一文带你简单了解!

如果你比较关注新兴技术的话,那么很可能在不同的地方听说过 istio,并且知道它和 service mesh 有着牵扯。这篇文章是我之前在公司内部做过的分享,可...

1.3K1
来自专栏EAWorld

微服务的持续集成,四步“构建”一个代码世界

大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天...

3375
来自专栏JAVA高级架构

分布式架构的演进

系统架构演化历程-初始阶段架构 ? 初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP特征:应用程序、数据库、文件等所有的...

4839
来自专栏Rainbond开源「容器云平台」

基于akka的分布式实时消息系统

4824
来自专栏BestSDK

一款完美的SDK产品,肯定具备这9个特质

即保证用户能够在5分钟以内学会使用代码。这一点非常重要,特别是考虑到有时候用户会评估我们的产品——如果无法轻松上手,他们很可能直接选择放弃。 ? 1. 简单性 ...

45410

扫码关注云+社区

领取腾讯云代金券