文档章节

消息队列属性及常见消息队列介绍

中间件小哥
 中间件小哥
发布于 06/22 09:21
字数 1083
阅读 12
收藏 1
点赞 0
评论 0

什么是消息队列?

消息队列是在消息的传输过程中保存消息的容器,用于接收消息并以文件的方式存储,一个队列的消息可以同时被多个消息消费者消费。分布式消息服务DMS则是分布式的队列系统,消息队列中的消息分布存储,且每条消息存储多个副本,以实现高可用性,如下图所示。

 

一般来说,消息队列具有如下属性:

消息顺序

普通队列支持“分区有序”和“全局队列”两种模式,ActiveMQ队列和Kafka队列均为分区有序。

分区有序的队列通过分布式处理,支持更高的并发,但由于队列的分布式特性,DMS无法保证能够以接收消息的精确顺序进行消费。如果用户要求保持顺序,建议在每条消息中放置排序信息,以便在收到消息时对消息重新排序。

全局有序的队列对消息消费遵循先入先出规则(FIFO),适用于对消费顺序要求较高的场景。

 

至少一次传递

在极少数情况下,当用户接收或删除消息时,存储消息副本的服务器之一可能不可用。如果出现这种情况,则该不可用服务器上的消息副本将不会被删除,并且在接收消息时可能会再次获得该消息副本。

这被称为“至少一次传递”,因此,用户的应用程序应该设计为幂等的应用程序(即,如果应用程序多次处理同一条消息,则不得受到不利影响)。

 

消息较少时单次消费不能获取指定数量的消息

从消息队列中消费消息时,DMS每次从部分消息存储分区中读取消息返回消息给消费者,如果队列中的消息数比较少,则单次消费可能会少于指定条数,但多次消费最终可获取全部消息。

 

常见消息队列介绍:

普通队列

包括分区有序和全局有序,分区有序的普通队列具有更高的并发性能,不保证先入先出(FIFO)的严格顺序,全局有序的普通队列保证消息先入先出(FIFO)的严格顺序。DMS支持普通队列和有序队列,提供高并发、低延时、稳定安全的消息中间件服务。

ActiveMQ队列

使用AMQP协议的队列。Advanced Message Queuing Protocol,是统一消息服务的应用层标准的高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。DMS兼容ActiveMQ,简单易用,按需使用,支持水平扩展,安全可靠,无忧运维。

Kafka队列

支持使用开源kafka客户端进行生产消息和消费消息。支持高吞吐和高可靠两种模式,高吞吐模式的消息副本异步落盘,具有较高的性能,高可靠模式的消息多副本同步落盘,保证消息的可靠性。DMS兼容Kafka,即开即用,安全可靠,支持高吞吐、高可靠两种应用场景。

RabbitMQ队列

采用物理隔离方式部署,支持用户自定义内存规格和自定义特性,您可以根据业务需要定制相应计算能力和存储空间的RabbitMQ实例。DMS兼容RabbitMQ,提供独占资源,保证队列高性能。

 

分布式消息服务DMS提供可靠且可扩展的托管消息队列。服务应用广泛,在实际选型时是一个不错的选择。想要了解更多,欢迎点开分布式消息服务DMS查看。

© 著作权归作者所有

共有 人打赏支持
中间件小哥
粉丝 1
博文 19
码字总数 18563
作品 0
深圳
HTTP协议级消息队列服务组件--UCMQ

UCMQ是一款轻量的HTTP协议级消息队列服务组件,项目的最初原型来自“张宴”的HTTPSQS。 基本特性: 支持标准的HTTP协议( GET/POST方法),支持长连接(keep-alive); 请求响应非常快速,入队...

红薯
2013/06/08
16.6K
6
RabbitQM入门概念(一)

一、RabbitMQ基本概念 rabbitMQ是什么 AMQP简介 说到rabbitMQ,就不得不提下AMQP(advanced Message Queuing Protocol)高级消息队列协议。 AMQP是一个提供统一消息服务的应用层标准高级消息...

benny周
2016/06/19
69
0
rabbitmq原理介绍(转载)

从AMQP协议可以看出,MessageQueue、Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件 从应用使用的角度全面的介绍如何利用Rabbit MQ构建消息队列以及使用过程中的注意...

yjpfj1203
2016/09/17
71
0
IBMMQ消息通道的配置和维护

IBM WebSphere MQ消息通道的配置和维护介绍(一) 1. 概述 WebSphere MQ作为IBM软件家族的消息传输中间件产品,以其出色的特性和功能在业界享有盛誉。WebSphere MQ独特的安全机制、简便快速的...

sckgeneral
2016/09/18
57
0
[Android] Handler详解

前言   Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不 允许Activity新启动的线程访问该Activity里的UI组件,这样...

枫兮兮
2014/02/24
0
0
WebSphere MQ配置

概述 WebSphere MQ作为IBM软件家族的消息传输中间件产品,以其出色的特性和功能在业界享有盛誉。WebSphere MQ独特的安全机制、简便快速的编程风格、卓越不凡的稳定性、可扩展性和跨平台性,以...

sckgeneral
2016/09/06
88
0
详细介绍Spring Boot + RabbitMQ实现延迟队列

背景 何为延迟队列? 顾名思义,延迟队列就是进入该队列的消息会被延迟消费的队列。而一般的队列,消息一旦入队了之后就会被消费者马上消费。 延迟队列能做什么? 延迟队列多用于需要延迟工作...

wooyoo
2017/11/21
0
0
Rabbitmq 相关介绍之单机配置

一、rabbitmq介绍 1、什么是MQ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来...

xingliguang
2017/09/13
0
0
Spring Cloud Stream应用与自定义RocketMQ Binder:编程模型

前言: 本文作者张天,节选自笔者与其合著的《Spring Cloud微服务架构进阶》,即将在八月出版问世。本文将其中Spring Cloud Stream应用与自定义Rocketmq Binder的内容抽取出来,主要介绍Spr...

aoho
06/23
0
0
详细介绍Spring Boot + RabbitMQ实现延迟队列

背景 何为延迟队列? 顾名思义,延迟队列就是进入该队列的消息会被延迟消费的队列。而一般的队列,消息一旦入队了之后就会被消费者马上消费。 延迟队列能做什么? 延迟队列多用于需要延迟工作...

wooyoo
2017/11/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
0
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
昨天
0
0
非常实用的IDEA插件之总结

1、Alibaba Java Coding Guidelines 经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

Gibbons
昨天
1
0
Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口

Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 java程序写的网站用tomcat+jdk来运行...

TaoXu
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部