处理高并发的方法

2023-11-01

处理高并发 六种方法

1:系统拆分

将一个系统拆分为多个子系统,用dubbo来搞。然后每个系统连一个数据库,这样本来就一个库,现在多个数据库,这样就可以抗高并发。

2:缓存

大部分的高并发场景,都是读多写少,那你完全可以在数据库和缓存里都写一份,然后读的时候大量走缓存不就得了。毕竟人家redis轻轻松松单机几万的并发啊。没问题的。所以你可以考的虑考虑你的项目里,那些承载主要请求读场景,怎么用缓存来抗高并发。

3:MQ(消息队列)

可能你还是会出现高并发写的场景,比如说一个业务操作里要频繁搞数据库几十次,增删改增删改,疯了。那高并发绝对搞挂你的系统,人家是缓存你要是用redis来承载写那肯定不行,数据随时就被LRU(淘汰掉最不经常使用的)了,数据格式还无比简单,没有事务支持。所以该用mysql还得用mysql啊。那你咋办?用MQ吧,大量的写请求灌入MQ里,排队慢慢玩儿,后边系统消费后慢慢写,控制在mysql承载范围之内。所以你得考虑考虑你的项目里,那些承载复杂写业务逻辑的场景里,如何用MQ来异步写,提升并发性。MQ单机抗几万并发也是ok的。

4:分库分表

可能到了最后数据库层面还是免不了抗高并发的要求,好吧,那么就将一个数据库拆分为多个库,多个库来抗更高的并发;然后将一个表拆分为多个表,每个表的数据量保持少一点,提高sql跑的性能。

5:读写分离

这个就是说大部分时候数据库可能也是读多写少,没必要所有请求都集中在一个库上吧,可以搞个主从架构,主库写入,从库读取,搞一个读写分离。读流量太多的时候,还可以加更多的从库。

6:solrCloud:

SolrCloud(solr 云)是Solr提供的分布式搜索方案,可以解决海量数据的 分布式全文检索,因为搭建了集群,因此具备高可用的特性,同时对数据进行主从备份,避免了单点故障问题。可以做到数据的快速恢复。并且可以动态的添加新的节点,再对数据进行平衡,可以做到负载均衡:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理高并发的方法 的相关文章

随机推荐

  • 基于深度学习的目标跟踪(Yolov3+deepsort)

    最近有个计数的项目刚好可以用到目标跟踪 先跑通测试一下 感觉还不错 项目代码在这里 主要参考的是一下两个项目改的 deep sort https github com nwojke deep sort keras yolov 3 https
  • 前端常用的一些正则表达式

    在线测试正则的网址 https regexr com 1 正整数 1 9 D 正整数不仅需要判断当前输入的全是数字 还需要保证第一位数字不是0 具体使用方式 直接在方法中写的话
  • Web前端学习(HTML)学习---下(表格标签,列表标签,表单标签)案例

    作者 旧梦拾遗186 专栏 C语言编程 小比特成长日记 前言 趁年轻 余额不足可以挣 电量不足可以充 时间匆匆不再回来 趁年轻就去多付出 不攀比 不抱怨 不计较 多付出 因为有一种努力叫靠自己 前一篇文章我们着重学习了HTML中的 标题标签
  • CSS--滑动门和过渡效果

    滑动门 滑动门出现的背景 制作网页时 为了美观 常常需要为网页元素设置特殊形状的背景 比如微信导航栏 有凸起和凹下去的感觉 最大的问题是里面的字数不一样多 咋办 为了使各种特殊形状的背景能够自适应元素中文本内容的多少 出现了CSS滑动门技术
  • Blender常用快捷键整理

    物体操作快捷键 即选中物体 G键 移动物体 R键 旋转物体 S键 缩放物体 移动 旋转或缩放物体时 按下X Y或Z键 按X Y或Z轴方向移动 旋转或缩放 TAB键 切换为编辑模式 CTRL A 弹出应用菜单 物体模式旋转缩放后应用旋转与缩放
  • 人工智能在通信领域的应用

    人工智能的出现使得各个行业都有了新的发展方向 通过和人工智能结合 使得自己的行业打破传统的方式 以一种新的姿态进入人们的视线中 现在我们都离不开通信技术 很多人对于人工智能给通信领域带来什么的改变 在这篇文章中我们会详细的介绍这一问题 大家
  • 基于opencv的车道线识别 方法二(极易实现(python))

    基于opencv的车道线识别 方法二 效果图 语言 平台 所需的库 步骤及原理 1 导入库 2 二值化 3 提取感兴趣区域 4 剔除噪点 5 找出值不为零的点 即车道线 并将其绘制在原图上 完整代码 效果图 语言 python 平台 pyc
  • 关于FFmpeg里的GPL和LGPL协议

    参考博文 谢谢博主的分享 http www cnblogs com findumars p 3556883 html GPL介绍 我们很熟悉的Linux就是采用了GPL GPL协议和BSD Apache Licence等鼓励代码重用的许可很
  • python并发编程学习笔记--单线程,多线程,多进程 day06

    Python并发编程是指同时处理多个任务的技术 包括单线程 多线程和多进程三种方式 1 单线程 单线程是指在一个进程中只有一个线程在执行任务的情况 虽然只有一个线程在执行任务 但可以使用异步编程模型来实现并发操作 从而达到提高程序效率的目的
  • 置信度传播算法(Belief Propagation)

    基础知识 条件概率 Conditional Probability 相互独立时 p A B p A 贝叶斯规则 贝叶斯网络 Bayesian Network 定了一个独立的结构 一个节点的概率仅依赖于它的父节点 贝叶斯网络适用于稀疏模型 即
  • 【Angular】——无限级下拉列表框

    前言 前段时间换了新框架 将前后端分离 对Angular2有点感兴趣 所以参与一起封装组件 在小5的帮助下 学会了 好多东西 这里总结下封装的无限级下拉列表框 dropdownlist ts import Component OnInit
  • IDEA 调试小技巧

    条件断点 循环中经常用到这个技巧 比如 遍历中 想让断点停在某个特定值 见上图 在断点位置 右击会弹出一个界面 在condition中填写断点条件 在调试的时候 断点会自动在断点条件 i 6 为 true时候停下 跳过为false的条件 回
  • Java对象与byte[]数组之间的相互转化,压缩解压缩操作

    原文 http blog csdn net NsdnResponsibility article details 51028739 comments 下面介绍一下java对象之间和byte 数组之间的相互转化 并对byte 数据进行压缩操作
  • 数学的回忆(零)——傅立叶

    一 什么是频域 从我们出生 我们看到的世界都以时间贯穿 股票的走势 人的身高 汽车的轨迹都会随着时间发生改变 这种以时间作为参照来观察动态世界的方法我们称其为时域分析 而我们也想当然的认为 世间万物都在随着时间不停的改变 并且永远不会静止下
  • 如何使用KubeSphere3.0的DevOps系统构建dotnet core应用

    如何使用KubeSphere3 0的DevOps系统构建dotnet core应用 因KubeSphere的DevOps系统官方未提供 net core的ci cd解决方案 需要自己进行DIY 现把实施过程记录下来 供需要的小伙伴自取 前提
  • FISCO BCOS 六、通过Caliper进行压力测试程序(及常见问题)

    目录 1 环境要求 第一步 配置基本环境 这里我使用的是Ubuntu20 04 第二步 安装NodeJS 第三步 部署Docker 第四步 安装Docker Compose 2 Caliper部署 第一步 部署 第二步 绑定 第三步 快速体
  • Jedis使用

    Jedis Jedis是Redis官方推荐的Java连接服务工具 Java语言连接redis服务还有这些SpringData Redis Lettuce 下载地址 https mvnrepository com artifact redis
  • MySQL left join优化

    问题描述 遇到了一个需要4个表连接查询的问题 数据量不是很大 两个表大概9000条数据 另外两个表大概几百条数据 但是每次查询时间都需要50秒左右的时间 SELECT FROM gzgdm gz gd region region LEFT
  • 类组件使用mobx实现数据修改以及请求数据

    src下创建新的共享数据文件test js import observable computed action autorun runInAction configure makeAutoObservable from mobx impor
  • 处理高并发的方法

    处理高并发 六种方法 1 系统拆分 将一个系统拆分为多个子系统 用dubbo来搞 然后每个系统连一个数据库 这样本来就一个库 现在多个数据库 这样就可以抗高并发 2 缓存 大部分的高并发场景 都是读多写少 那你完全可以在数据库和缓存里都写一