首页 > 其他分享 >消息队列(一)

消息队列(一)

时间:2023-12-21 17:02:44浏览次数:26  
标签:队列 Queue 处理 开源 消息 服务器

消息队列是做什么的?

消息队列(Message Queue,简称MQ)是一种在消息的传输过程中保存消息的容器。它是一种跨进程或线程间通信的方式,常用于不同进程或线程间异步处理数据。

消息队列利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。消息队列一般简称为MQ,由Broker(消息服务器,核心部分)、Producer(消息生产者)、Consumer(消息消费者)、Topic(主题)、Queue(队列)和Message(消息体)组成。

消息生产者将消息发送到Queue(队列)中,然后消息消费者从Queue(队列)找取出消息,当消息被消费之后就从Queue(队列)中删除,消息只能被一个消息消费者使用。

消息队列怎么使用?

消息队列的使用通常涉及以下步骤:

  1. 创建消息队列:首先,需要创建一个消息队列。这可以通过使用消息队列服务器的API或命令行工具来完成。
  2. 发送消息:一旦消息队列被创建,就可以发送消息到队列中。这可以通过使用消息队列服务器的API或命令行工具来完成。在发送消息时,需要指定要发送到的队列名称。
  3. 接收消息:消息队列服务器会按照先进先出(FIFO)的顺序将消息从队列中取出,并发送给消费者。消费者可以连接到消息队列服务器,并使用相应的API或命令行工具来接收消息。
  4. 处理消息:一旦消费者接收到消息,就可以对其进行处理。处理方式取决于应用程序的需求。
  5. 确认消息:在处理完消息后,消费者需要向消息队列服务器发送确认消息,以告知该消息已经被成功处理。

需要注意的是,不同的消息队列服务器的使用方式可能会有所不同。因此,在使用特定的消息队列服务器时

有哪些常见的消息队列?

常见的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、Pulsar等。

  1. RabbitMQ:是一个开源的消息队列系统,实现了AMQP(Advanced Message Queuing Protocol)协议,提供了丰富的功能,如消息持久化、消息确认、灵活的路由和绑定等。
  2. Kafka:是一个分布式的流式平台,它可以处理大规模的实时数据流。基于发布-订阅模型,具有高吞吐量和持久性,适用于处理大量实时数据的场景。
  3. RocketMQ:是一个开源的分布式消息队列系统,由阿里巴巴集团开发并开源。具有高吞吐量、低延迟、可靠性强和可扩展性等特点,适用于大规模分布式系统中的消息通信和异步解耦场景。
  4. Pulsar:是一个开源的分布式消息和流处理平台,具有高性能、可扩展性和持久化特性。支持多租户、多数据中心部署和动态扩展,适用于大规模和复杂的消息队列和流处理场景。
  5. ActiveMQ:是Apache基金会的一个开源消息中间件,支持JMS(Java Message Service)规范。提供了多种通信模式,如点对点(P2P)和发布-订阅(Pub/Sub),并具有可靠性、可扩展性和高可用性。

标签:队列,Queue,处理,开源,消息,服务器
From: https://blog.51cto.com/u_16375957/8925282

相关文章

  • 自己新建的一个项目作为分布式的调研学习以及使用功能的启动消息如下
    D:\work\Java\jdk-17.0.4.1\bin\java.exe-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:1117,suspend=y,server=n-XX:TieredStopAtLevel=1-Dspring.output.ansi.enabled=always-Dcom.sun.management.jmxremote-Dspring.jmx.enabled=true-Dspring.liveBean......
  • Socket.D 基于消息的响应式应用层网络协议
    首先根据Socket.D官网的副标题,Socket.D的自我定义是:基于事件和语义消息流的网络应用协议。官网定义的特点是:基于事件,每个消息都可事件路由所谓语义,通过元信息进行语义描述流关联性,有相关的消息会串成一个流语言无关,使用二进制输传数据(支持tcp,ws,udp)。支持多语言、......
  • 队列
    1.队列概念及结构队列一种先进先出的数据结构,先入队列的数据先出队列单链表能实现队列?所以以原来的单链表无法用来实现队列,如何修改?只需再加个last引用指向尾,这样尾插入队操作复杂度就能达到O(1)但是需要注意:这种结构的单链表只能头插实现出队尾插实现入队,不......
  • RabbitMQの延迟消息
    目录1、什么是延时队列2、延时队列使用场景3、RabbitMQ中的TTL4、如果使用RabbitMQ来实现延时队列4.1、安装插件4.2、代码实现4.2.1、新建maven工程,pom.xml文件4.2.2、属性配置文件application.yml4.2.3、定义常量4.2.3、配置RabbitMQ4.2.4、定义重试时间枚举类型4.2.5、定义消息......
  • 消息中间件的选择:RabbitMQ是一个明智的选择
    ......
  • [WPF]动手写一个简单的消息对话框
    消息对话框是UI界面中不可或缺的组成部分,用于给用户一些提示,警告或者询问的窗口。在WPF中,消息对话框是系统原生(user32.dll)的MessageBox,无法通过Style或者Template来修改消息对话框的外观。因此,当需要一个与应用程序主题风格一致的消息对话框时,只能自己动手造轮子了。确定“轮子......
  • 等待队列
    等待队列什么是等待队列等待队列是内核实现阻塞和唤醒的内核机制。等待队列以循环链表为基础结构,链表头和链表项分别为等待队列头和等待队列元素。整个等待队列由等待队列头进行管理。等待队列头使用结构体wait_queue_head_t来表示,等待队列头就是一个等待队列的头部,这个结构......
  • 写mq消息失败
     有时候解决问题的方式很简单,如下:消费模式:    集群模式普通消息:    单向发送pom.xml配置<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.0.4</version></d......
  • Netty使用CompletableFuture实现异步串行队列
    一、前言CompletableFuture是JDK1.8提供的一种更加强大的异步编程的api。它实现了Future接口,也就是Future的功能特性CompletableFuture也有。它也实现了CompletionStage接口,CompletionStage接口定义了任务编排的方法,执行某一阶段,可以向下执行后续阶段。CompletableFuture相比于Futu......
  • 使用RocketMQ实现消息顺序消费
    消息的顺序消费在很多交易型的业务场景中都会被要求实现,而且,消息队列的顺序消费解决方案在很多互联网公司的面试中经常会被问到。索尔老师在使用了多个消息队列后发现,虽然每个消息队列都有各自的顺序消费解决方案,但是RocketMQ经过了多年电商的洗礼,其功能性的要求,已经设计的非常全面......