处理高并发的方法

处理高并发 六种方法

1:系统拆分

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

2:缓存

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

3:MQ(消息队列)

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

4:分库分表

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

5:读写分离

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

6:solrCloud:

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

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js是一个基于事件驱动和非阻塞I/O模型的JavaScript运行时环境,它具有处理高并发的优势。以下是一些Node.js处理高并发方法和特点: 1. 异步非阻塞I/O:Node.js使用异步非阻塞I/O模型,这意味着它可以同时处理多个请求而不会阻塞其他请求的执行。当一个请求发起时,Node.js会立即转而处理下一个请求,而不需要等待前一个请求的完成。 2. 事件驱动:Node.js基于事件驱动的架构,它使用事件循环来处理请求。当一个请求完成时,Node.js会触发一个事件,然后执行相应的回调函数。这种事件驱动的机制使得Node.js能够高效地处理大量的并发请求。 3. 单线程:尽管Node.js是单线程的,但它通过使用事件循环和异步I/O来实现并发处理。这意味着Node.js可以同时处理多个请求,而不需要为每个请求创建一个新的线程,从而减少了系统资源的消耗。 4. 高效的网络通信:Node.js使用了基于事件驱动的非阻塞I/O模型,这使得它在处理网络通信时非常高效。它可以处理大量的并发连接,并且具有较低的延迟和高吞吐量。 5. 模块化的架构:Node.js采用了模块化的架构,它允许开发者将代码分割成多个模块,每个模块都可以独立地处理请求。这种模块化的架构使得开发和维护变得更加容易,并且可以提高代码的可重用性。 总结起来,Node.js通过异步非阻塞I/O、事件驱动、单线程和模块化的架构等特点,使得它能够高效地处理高并发的请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值