JAVA-消息队列及分布式消息队列原理
原文章:https://www.cnblogs.com/middleware/p/9178734.html
一、什么是消息队列
消息队列是在消息的传输过程中保存消息的容器,队列的主要目的是提供路由并保证消息的传递。 如果发送消息时接受者不可用,消息队列会保留消息,知道可以成功传递消息。
消息队列是一种异步的服务间通信方式,是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。使用较多的消息队列:ActiveMQ,RocketMQ,RabbitMQ,Kafka等。
二、分布式消息队列的原理
在消息队列的基础上,稳定可靠的消息队列服务----分布式消息服务应运而生。
分布式消息服务(DMS): 一项基于高可用分布式集群技术的消息中间件服务,提供普通队列、有序队列、kafka队列、ActiveMQ、RabbitMQ,兼容HTTP、TCP、AMQP协议,为分布式应用提供低延迟、高并发的异步通信机制。
消息传递过程如下:
①生产者发送消息给消息队列:
生产者将消息M发送到队列中,消息M在队列中冗余分布,存在多个副本。
②消费者从消息队列中消费消息:
消费消息的一方叫消息消费者,通过调用消息服务的消费接口从队列中读取消息。 消费者从队列中得到消息M,在消费者消费消息的期间,消息M仍存在于消费队列中,但是消息M从消费者开始消费M开始的30秒内不能被该消费组再次进行消费。若在30秒内,该消息没有被消费者确认为消费成功,则DMS认为消息M未消费成功,将可以继续进行消费。
③消费者确认消息已经消费:
消费者确认消息消费完成,消息M该不再被该消费者所在消费组消费。消息M仍然保持在队列中,并且可以被其他消费组进行消费,消息在队列中至少存在72小时(除非队列删除),72小时后将会被删除。
JAVA-消息队列及分布式消息队列原理相关推荐
- java starling_Java使用starling分布式消息队列异步处理事务
介绍: Starling是一个支持MemCache协议的轻量级持久化服务器.Starling是让创建网络访问队列或者多个队列异常简单,也就是说多点和多台 机器间的异步工作进程.它是著名微博客网站T ...
- java starling_Java使用starling分布式消息队列异步处理事务...
介绍: Starling是一个支持MemCache协议的轻量级持久化服务器.Starling是让创建网络访问队列或者多个队列异常简单,也就是说多点和多台 机器间的异步工作进程.它是著名微博客网站Twi ...
- java 延时队列_Java实现简单延迟队列和分布式延迟队列
在我们的工作中,很多地方使用延迟队列,比如订单到期没有付款取消订单,制订一个提醒的任务等都需要延迟队列,那么我们需要实现延迟队列.我们本文的梗概如下,同学们可以选择性阅读. 1. 实现一个简单的延迟队 ...
- java redisson_Java使用Redisson分布式锁实现原理
本篇文章摘自:https://www.jb51.net/article/149353.htm 由于时间有限,暂未验证 仅先做记录.有大家注意下哈(会尽快抽时间进行验证) 1. 基本用法 添加依赖 or ...
- 分布式消息队列基础知识
本文主要整理消息队列的一些基本概念,为后面的Rocketmq消息队列组件深入学习打下基础. 一.什么是消息队列? 维基百科介绍:消息队列(Message Queue)是一种进程间通信或同一进程的不同线 ...
- 浅谈消息队列及常见的分布式消息队列中间件
背景 分布式消息队列中间件是是大型分布式系统不可缺少的中间件,通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息.所以消息队列主要解决应用耦合.异步消 ...
- java面试题总结(六)--消息队列MQ-面试题
原文链接 目录 1.什么是消息队列? 2.为什么要使用消息队列? 1 解耦 2 异步处理. 3 削峰 3.使用消息队列带来的一些问题 4.JMS两种消息模型 5.消息队列由哪些角色组成? 6.常见消息 ...
- 一文读懂:Kafka(分布式消息队列)的基础概念,教程
[提前声明] 文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章 写作不易,转载请注明,谢谢! 代码案例地址: ?https://github.com/Mydreamandrea ...
- 架构师的 36 项修炼第04讲:架构核心技术之分布式消息队列
本课时的主题是分布式消息队列,分布式消息队列的知识结构如下图. 本课时主要介绍以下内容. 同步架构和异步架构的区别.异步架构的主要组成部分:消息生产者.消息消费者.分布式消息队列.异步架构的两种主要模 ...
- 21 利用分布式消息队列降低系统耦合性
国内某大型互联网企业经常因为对同行的产品进行微创新,然后推岀自己的产品而遭人诟病,不讨论这种做法是否合适,我们分析这些产品,发现大多数都比原创产品有 更好的用户体验.这些产品常常后来居上,更速度地推岀 ...
最新文章
- Oracle 11g密码过期问题解决方案
- 微信公众号开发小记——4.两种邀请用户的方式 扫码链接
- crontab 定时任务配置
- 操作系统原理:死锁的特征,预防,避免,恢复
- 为Visual studio 2008 添加汇编工程模板
- python自动化办公选择题_python自动化开发-[第一天]-练习题
- Android之layout属性介绍
- python总结函数图像_PIL使用小结(crop和paste函数)
- Java防止Xss注入json_每日一题(java篇) 如何防止xss注入
- 实验报告总结_小学四年级数学下册全册知识点总结 ,家有四年级学生的家长收藏...
- ZooKeeper Web UI -- Shovel
- nlp项目:搭建一个简单的问答系统
- 拓端tecdat|R语言BUGS/JAGS贝叶斯分析: 马尔科夫链蒙特卡洛方法(MCMC)采样
- 安卓手机利用DroidCam当电脑摄像头使用方法
- linux卸载nps,Linux NPS服务部署
- C# 实现eval,支持任意个数、任意基本类型的参数
- 磊科NBR100企业有线路由器IP和Mac地址绑定教程
- 深入浅出ERC777合约
- RHEL搭建DNS正反解析
- Android系统的指纹开发