消息队列

啥是消息队列

一般来说,消息队列是一种异步的服务间通信方式,是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。

为啥要用消息队列

主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update之类的请求同时到达MySQL,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too many connections错误。通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。

消息队列有哪些

  1. Kafka
  2. RocketMQ
  3. RabbitMQ
  4. pulsar
  5. activeMQ
  6. verneMQ

一个大型的分布式系统,通常都会异步化,走消息总线。 消息队列作为最主要的基础组件,在整个体系架构中,有着及其重要的作用。异步通常意味着编程模型的改变,时效性会降低。

kafka是目前最常用的消息队列,尤其是在大数据方面,有着极高的吞吐量。而rocketmqrabbitmq,都是电信级别的消息队列,在业务上用的比较多。相比较而言,ActiveMQ使用的最少,属于较老一代的消息框架。

pulsar是为了解决一些kafka上的问题而诞生的消息系统,比较年轻,工具链有限。有些激进的团队经过试用,反响不错,但实际使用并不多。

mqtt具体来说是一种协议,主要用在物联网方面,能够双向通信,属于消息队列范畴,推荐使用vernemq

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • VUE项目使用.env文件配置全局环境变量

    注意:属性名必须以VUE_APP_开头,比如VUE_APP_URL VUE_APP_XXX

    用户4464623
  • 8个尽量优化你的SQL

    ==3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描。==

    用户4464623
  • Kubernetes 学习(1)-了解k8s及其组件

    Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,那么可以将Dock...

    用户4464623
  • CKafka系列学习文章 - 什么是消息队列 ?(一)

    | 导语 在大家的工作当中,是否碰到大量的插入、更新请求同时到达数据库,这会导致行或表被锁住,最后会因为请求堆积过多而触发“连接数过多的异常”(Too Man...

    发哥说消息队列
  • Java中常用的七个阻塞队列第二篇DelayQueue源码介绍

    通过前面两篇文章,我们对队列有了了解及已经认识了常用阻塞队列中的三个了。本篇我们继续介绍剩下的几个队列。

    凯哥Java
  • RabbitMQ要点

    发送方确认模式:将信道设置成confirm模式(发送方确认模式),则所有在信道上发布的消息都会被指派一个唯一的ID。一旦消息被投递到目的队列后,或者消息被写入磁...

    技术从心
  • 《深入RabbitMQ》笔记

    当消息与任一绑定的队列符合匹配标准时,RabbitMQ服务器将以FIFO的顺序将消息放入队列中。放入队列数据结构中的并不是实际消息,而是消息的引用

    槽痞
  • RabbitMQ 面试要点

    原文链接:https://chaser520.iteye.com/blog/2428253

    业余草
  • 全网最全RabbitMQ总结,别再说你不会RabbitMQ

    当初我学RabbitMQ的时候,第一时间就上GitHub找相应的教程,但是令我很失望的是没有找到,Spring,Mybatis之类的教程很多,而RabbitMQ...

    Java识堂
  • 原 RabbitMq基础教程之基本概念

    一灰灰blog

扫码关注云+社区

领取腾讯云代金券