原文章: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-消息队列及分布式消息队列原理相关推荐

  1. java starling_Java使用starling分布式消息队列异步处理事务

    介绍:   Starling是一个支持MemCache协议的轻量级持久化服务器.Starling是让创建网络访问队列或者多个队列异常简单,也就是说多点和多台 机器间的异步工作进程.它是著名微博客网站T ...

  2. java starling_Java使用starling分布式消息队列异步处理事务...

    介绍: Starling是一个支持MemCache协议的轻量级持久化服务器.Starling是让创建网络访问队列或者多个队列异常简单,也就是说多点和多台 机器间的异步工作进程.它是著名微博客网站Twi ...

  3. java 延时队列_Java实现简单延迟队列和分布式延迟队列

    在我们的工作中,很多地方使用延迟队列,比如订单到期没有付款取消订单,制订一个提醒的任务等都需要延迟队列,那么我们需要实现延迟队列.我们本文的梗概如下,同学们可以选择性阅读. 1. 实现一个简单的延迟队 ...

  4. java redisson_Java使用Redisson分布式锁实现原理

    本篇文章摘自:https://www.jb51.net/article/149353.htm 由于时间有限,暂未验证 仅先做记录.有大家注意下哈(会尽快抽时间进行验证) 1. 基本用法 添加依赖 or ...

  5. 分布式消息队列基础知识

    本文主要整理消息队列的一些基本概念,为后面的Rocketmq消息队列组件深入学习打下基础. 一.什么是消息队列? 维基百科介绍:消息队列(Message Queue)是一种进程间通信或同一进程的不同线 ...

  6. 浅谈消息队列及常见的分布式消息队列中间件

    背景 分布式消息队列中间件是是大型分布式系统不可缺少的中间件,通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息.所以消息队列主要解决应用耦合.异步消 ...

  7. java面试题总结(六)--消息队列MQ-面试题

    原文链接 目录 1.什么是消息队列? 2.为什么要使用消息队列? 1 解耦 2 异步处理. 3 削峰 3.使用消息队列带来的一些问题 4.JMS两种消息模型 5.消息队列由哪些角色组成? 6.常见消息 ...

  8. 一文读懂:Kafka(分布式消息队列)的基础概念,教程

    [提前声明] 文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章 写作不易,转载请注明,谢谢! 代码案例地址: ?https://github.com/Mydreamandrea ...

  9. 架构师的 36 项修炼第04讲:架构核心技术之分布式消息队列

    本课时的主题是分布式消息队列,分布式消息队列的知识结构如下图. 本课时主要介绍以下内容. 同步架构和异步架构的区别.异步架构的主要组成部分:消息生产者.消息消费者.分布式消息队列.异步架构的两种主要模 ...

  10. 21 利用分布式消息队列降低系统耦合性

    国内某大型互联网企业经常因为对同行的产品进行微创新,然后推岀自己的产品而遭人诟病,不讨论这种做法是否合适,我们分析这些产品,发现大多数都比原创产品有 更好的用户体验.这些产品常常后来居上,更速度地推岀 ...

最新文章

  1. Oracle 11g密码过期问题解决方案
  2. 微信公众号开发小记——4.两种邀请用户的方式 扫码链接
  3. crontab 定时任务配置
  4. 操作系统原理:死锁的特征,预防,避免,恢复
  5. 为Visual studio 2008 添加汇编工程模板
  6. python自动化办公选择题_python自动化开发-[第一天]-练习题
  7. Android之layout属性介绍
  8. python总结函数图像_PIL使用小结(crop和paste函数)
  9. Java防止Xss注入json_每日一题(java篇) 如何防止xss注入
  10. 实验报告总结_小学四年级数学下册全册知识点总结 ,家有四年级学生的家长收藏...
  11. ZooKeeper Web UI -- Shovel
  12. nlp项目:搭建一个简单的问答系统
  13. 拓端tecdat|R语言BUGS/JAGS贝叶斯分析: 马尔科夫链蒙特卡洛方法(MCMC)采样
  14. 安卓手机利用DroidCam当电脑摄像头使用方法
  15. linux卸载nps,Linux NPS服务部署
  16. C# 实现eval,支持任意个数、任意基本类型的参数
  17. 磊科NBR100企业有线路由器IP和Mac地址绑定教程
  18. 深入浅出ERC777合约
  19. RHEL搭建DNS正反解析
  20. Android系统的指纹开发

热门文章

  1. JAVA综合实习报告
  2. 不同文件格式打开的方法
  3. Multisim14仿真基本模拟电路之 10. 3. 2比例放大电路的仿真实验与分析
  4. 数据库MySQL学习心得
  5. 【nvidia npp】——图像resize
  6. 推荐几款大家常使用的 SSH 客户端工具
  7. 智慧城管拓展业务系统建设方案
  8. 华为折叠手机是鸿蒙系统吗,华为发布新一代折叠屏手机 将首批升级鸿蒙系统...
  9. 有C++特色的极乐净土
  10. CMSIS-RTOS相关的一些内容