处理高并发的六种方法

处理高并发的六种方法处理高并发的六种方法1:系统拆分,将一个系统拆分为多个子系统,用dubbo来搞。然后每个系统连一个数据库,这样本来就一个库,现在多个数据库,这样就可以抗高并发。2:缓存,必须得用缓存。大部分的高并发场景,都是读多写少,那你完全可以在数据库和缓存里都写一份,然后读的时候大量走缓存不就得了。毕竟人家redis轻轻松松单机几万的并发啊。没问题的。所以你可以考的虑考虑你的项目里,那些承载主要请求读场景…

大家好,又见面了,我是你们的朋友全栈君。

处理高并发的六种方法

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

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

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

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

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

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


作者:ALLENsakaru
来源:CSDN
原文:https://blog.csdn.net/ALLENsakaru/article/details/85952942
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138295.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月6日 下午12:20
下一篇 2022年5月6日 下午12:20


相关推荐

  • 下列选项中不符合python语言变量命名规则的是_下列选项中不符合Python语言变量命名规则的是??????????????????????????????????( )。…

    下列选项中不符合python语言变量命名规则的是_下列选项中不符合Python语言变量命名规则的是??????????????????????????????????( )。…下列选项中不符合Python语言变量命名规则的是??????????????????????????????????()。答:3_1下列基金的收益与股票市场平均收益率最接近的是()。答:股票基金自由锻基本工序有、、答:镦粗拔长冲孔中国第一颗的爆炸时间是答:1967年废品净损失应由()。答:同种合格产品成本负担下列各进制的整数中,值最小的是()答:二进制数11春风雨:理性…

    2022年5月28日
    42
  • linux netstat -an命令,linux 命令之netstat[通俗易懂]

    linux netstat -an命令,linux 命令之netstat[通俗易懂]在linux中netstat命令的作用是查看TCP/IP网络当前所开放端口,所对应的本地和外地端口信息。netstat命令的格式netstat[-a][-e][-n][-o][-pProtocol][-r][-s][Interval]各参数选项的含义a显示所有socket,包括正在监听的。-c每隔1秒就重新显示一遍,直到用户中断它。-i显示所有网络接口的信息,格式“netstat-i”…

    2022年8月30日
    5
  • java 队列方法详解「建议收藏」

    java 队列方法详解「建议收藏」一、队列支持的方法(Queue) throwexception returnspecialvalue insert add 1、增加元素不能为null 2、其他异常,比如有界队列 offer 1、元素不能为null 2、实现内部调用addF…

    2022年7月7日
    27
  • 新思科技收购Ansys后首发新品:AI智能体“组团”设计芯片,效率最高提升5倍

    新思科技收购Ansys后首发新品:AI智能体“组团”设计芯片,效率最高提升5倍

    2026年3月14日
    2
  • Redis面试题(一): Redis到底是多线程还是单线程?

    Redis面试题(一): Redis到底是多线程还是单线程?0.redis单线程问题单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。1.为什么说redis能够快速执行(1)绝大部分请求是纯粹的内存操作(非常快速)(2)采用单线程,避免了不必要的上下文切换和竞争条件(3)非阻塞IO-IO多路复用2.redis的内部实现 内部实现采用epoll,采用了epoll+自己…

    2022年5月3日
    63
  • 注册网页_dubbo服务注册

    注册网页_dubbo服务注册大概在去年的时候发现生产环境使用eureka经常会发现服务假死eureka没有给踢掉的情况,然后就衍生了要不就换个注册中心试试,然后就了解到了nacos,正好他还融合了配置中心,但是后来碍于切换时怕生产环境不稳定,丢数据等问题就一直没有换,但后续的项目的注册中心都换成了nacos,这篇文章我就来模拟一下如何将eureka平滑切换成nacos………………

    2022年8月21日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号