消息队列

什么是消息队列

消息队列是消息中间件的一种实现方式。

什么是消息中间件?

将消息中间件需要理解一下什么是消息和中间件?

消息

消息是指软件对象之间进行交互作用和通讯利用的一种方式。

中间件

百度百科的介绍:

​ 中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。

这介绍的我的不是很明白,下面我就讲解一下我的理解,什么是中间件:

首先,中间件 顾名思义 介于两者之间的一个技术:

​ 为了更好的理解中间件技术,我有了这样的一个设想的概念,如图:

​ 信息:这是一个抽象的个体,可以代表一个软件、计算机、或者一个系统等等。

联系:则是进行通信、相互操作等等的抽象

​ 中间件则是将 信息与信息之间的联系践行一种存储或者管理的技术,这就是中间件技术。

​ 根据其应用的不同,中间件分为:

​ 一类是底层中间件,用于支撑单个应用系统或解决一类问题,包括交易中间件(TPM)、应用服务器、消息中间件(MOM)、数据访问中间件(UDA),远程调用中间件(RPC)等等;

​ 另一类是高层中间件,更多的用于系统整合,包括企业应用集成中间件、工作流中间件、门户中间件等,他们通常会与多个应用系统打交道,在系统中层次较高,并大多基于前一类的底层中间件运行。

总结:消息中间件则是将软件与软件之间的交互方式进行存储和管理的一种技术,也可以看做是一种容器。

###深入理解消息队列:

消息队列,是消息中间件的一种实现方式

下面是消息队列传递服务的模型:

消息队列的传递模型一共有两中形式:

点对点(PTP)

即一个生产者和一个消费者一一对应;

点对点模型的特点:

1,每个消息只有一个消费者

2,发送者和接受者没有时间依赖

3,接受者确认消息接受和处理成功

发布-订阅(Pub/Sub)

发布/ 订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进

行接收。

发布-订阅模型特点:

1,每个次消息可以有多个消费者

2,客户只有订阅后才能接收消息(只有建立订阅关系才可以接收消息 )

3,持久订阅和非持久订阅

持久订阅

订阅关系建立后(关系保存在消息中间件中),不管消费者(也就是订阅者)是否在线消息都不会消失。

非持久订阅

建立一种类似长连接关系式的订阅模式,订阅者为了接收消息必须保持一直连接的状态,如果断开连接则丢失消息。

消息队列的分类:

push(推消息模型)

消息生产者将消息发送给消息中间件,消息中间件又将消息推送给消费者。

pull(拉消息模型)

消费者请求 消息中间件接收消息,消费者从消息中间件拉取消息。

特点:

目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等 。

消息队列的应用案例:

1,用户注册

2,日志收集分析

3,数据复制

4,延迟消息发送和暂存

5,消息广播

java消息中间件_java消息中间件相关推荐

  1. Java开发中消息中间件的优势有哪些?

    系统解耦 交互系统之间没有直接的调用关系,只是通过消息传输,故系统侵入性不强,耦合度低. 提高系统响应时间 例如原来的一套逻辑,完成支付可能涉及先修改订单状态.计算会员积分.通知物流配送几个逻辑才能完 ...

  2. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  3. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  4. java 中间件介绍_java消息中间件的使用与简介

    一.为什么要使用消息中间件 消息中间件就是可以省去繁琐的步骤,直达目的,怎么讲呢,就是比如你想很多人,知道你的动态,而知道的人可能手机没电,可能手机信号不好,可能手机不在服务区,或者看的人比较忙,看的 ...

  5. java游戏_java开发的七个金典游戏你小时候肯定玩过

    相信很多刚接触编程的同学,对于Java开发能做些什么.做过哪些游戏, 并不是特别清楚.那么今天小编就为大家分享下, 万能的Java开发过的那些经典游戏吧! 手机上的Java即J2ME(Java 2 M ...

  6. mq java 开发_Java后台开发ActiveMQ使用指南

    ActiveMQ简单的介绍 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线,是一个开放源代码消息中间件,对于消息的传递有两种类型:点对点的,即一个生产者和一个消费者一一对应. ...

  7. python消息中间件activemq_消息中间件ActiveMQ和JMS基础

    MQ主要流程 解耦,异步,消峰 其中目的地主要为队列或者主题 队列点对点 消息的生产者 或者 这时消息的生产者名字已经出来 并且入队的数量变成了3 上述完成的也就是这部分 消息的消费者 前四步大同小异 ...

  8. java书籍_Java学习必备书籍(快来收藏)

    Hello,everyone! 今天圆圆煞费苦心的从JavaGuide.CSDN.豆瓣读书等平台搜索相关信息为大家整理了一份学习<Java的必备书籍>精华推荐,希望能够帮助更多的热爱Jav ...

  9. php常用的消息中间件有,消息中间件有哪些?

    消息中间件有:1.Kafka主要为高吞吐量的订阅发布系统而设计,追求速度与持久化:2.RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现:3.RocketMQ是纯Ja ...

最新文章

  1. 宏基因组实战10. 绘制圈图-Circos安装与使用
  2. C# 7.2和8.0路线图
  3. 最近很火的 ClickHouse 是什么?
  4. C#后台导入css和设置前台关键字和描述
  5. 成功解决ValueError: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216 from C h
  6. nginx 和php连接数,nginx限制ip连接数和带宽
  7. 图解安装CentOS 6.6
  8. js中的鼠标右键点击事件
  9. nginx防火墙在哪设置_Nginx 基本使用介绍
  10. (转)C 语言高效编程的几招
  11. Android 性能指标检测工具
  12. linux添加磁盘分区,linux添加磁盘分区
  13. 【博文视点送书福利】Java程序员也应该会点产品经理的活!另外还要有小程序哦!
  14. Ubuntu 18.04搭建Moodle
  15. 微信小程序 【给图片加上删除图标】
  16. 基于多输入模型及句法结构的中文评论情感分析方法
  17. Word文档统一图片格式快捷操作
  18. 使用USBWriter等工具做U盘启动盘后容量变小的解决办法
  19. Asp.net页面跳转的方法
  20. 智能温室监测系统解决方案

热门文章

  1. vscode之vue文件格式化代码无效怎么办
  2. 斩获 BAT 等 7 家 Offer。GitHub 4 万 Star 项目作者的面试经历
  3. 基金从业资格考试总结
  4. 屏幕旋转后字体会变大问题
  5. 如何实现用户关系的自动绑定?
  6. 数商云商业服务业SaaS管理系统:实现高效业务协作,助力企业完善数字化转型之路
  7. 局域网内帆软BI使用arcgis发布的wms服务
  8. 盐城北大青鸟东台基地学员生日会 | 美好的时光里,你我同在
  9. “chmod 777-R 文件名”什么意思?
  10. 【AWS云从业者基础知识笔记】——模块1:AWS服务简介