学习MQ(二)基本概念
学习MQ(二)基本概念
这次简单罗列一下MQ的基本概念,还有我对它们的理解
1、queue manager 队列管理器,这是MQ系统中最上层的一个概念。每一个queue manager都有一个侦听器,如果它要接受消息的话,每个queue manager中管理多个队列queue和消息通道message channel。
2、消息 message,消息是应用程序交给MQ来传输的数据。
3、队列 queue,队列是用来存放消息的,把消息存放到队列中,直到应用程序或其他MQ对象来处理或取走。
假如,系统A和系统B之间需要数据传输,那么应用程序在系统A端把消息放到MQ的队列中,在系统B端的应用程序从队列中取消息,至于系统A到系统B的数据传输,那是MQ要做的事情。
我用到的队列有三种,本地队列,远程队列,传输队列。其中传输队列也是本地队列的一种,也叫本地传输队列,另外一个叫普通本地队列。
普通本地队列是消息的暂存区,应用程序可以通过API直接把消息放入本地队列,或者取走消息,普通本地队列是占用磁盘空间的,应该是对应磁盘上测某个文件。
本地传输队列是一个存储转发队列,资料上是这么说的:比如,我们将某个消息交给MQ系统发送到远程主机,而此时网络发生故障,MQ将把消息放在传输队列中暂存,当网络恢复时,再发往远端目的地。
本地传输队列也是要占用磁盘存储空间的。
远程队列是一个定义,它是目的MQ系统中的本地队列在本系统中的一个映像,就像定义了一个指针,指向目的系统的本地队列一样。它不占用磁盘空间。
还有模板队列和动态队列的概念,很好理解,模板队列就是一个模板,定义新的队列时可以照着这个模板创建。动态队列没用过,听说很灵活,是MQ的特色。
4、消息通道 message channel 消息通道是一个逻辑概念,它是队列管理器之间传输消息的管道,它建立在屋里的网络连接之上。传说,通道是MQ的精华,由于我没用过其他的消息中间件产品,也没有深入使用MQ,所以没有看出这精华二字体现在何处。
消息通道是单向的,由发送方通道和接收方通道组成,而且这两个必须是同名的。如系统A要发消息到系统B,那么需要在A中建立发送方通道,在B建立接收方通道,必须同名。
另外还有两种通道,MQI通道和Cluster通道,我没用,就没深究,要是以后用到,就深挖一下。
5、侦听器 listener 这是在接受消息方必不可少的。它侦听一个端口(默认为1414,可以更改),等待发送方的连接。
学习MQ(二)基本概念的更多相关文章
- apache Storm学习之二-基本概念介绍
2.1 Storm基本概念 在运行一个Storm任务之前,需要了解一些概念: Topologies Streams Spouts Bolts Stream groupings Reliability ...
- 从零开始学习jQuery (二) 万能的选择器
本系列文章导航 从零开始学习jQuery (二) 万能的选择器 一.摘要 本章讲解jQuery最重要的选择器部分的知识. 有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显 ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
- java之jvm学习笔记二(类装载器的体系结构)
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- zuul进阶学习(二)
1. zuul进阶学习(二) 1.1. zuul对接apollo 1.1.1. Netflix Archaius 1.1.2. 定期拉 1.2. zuul生产管理实践 1.2.1. zuul网关参考部 ...
- scrapy爬虫学习系列二:scrapy简单爬虫样例学习
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- (转)Maven学习总结(二)——Maven项目构建过程练习
孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...
随机推荐
- (NO.00004)iOS实现打砖块游戏(十):砖块!更多的砖块!
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 到目前为止游戏基本可玩,但是砖块数量是不变的,等玩家打光所有的砖 ...
- 利用openssl管理证书及SSL编程第2部分:在Windows上编译 openssl
利用openssl管理证书及SSL编程第2部分:在Windows上编译 openssl 首先mingw的环境搭建,务必遵循下文: http://blog.csdn.net/ubuntu64fan/ar ...
- 管道模式——pipeline与valve
在一个比较复杂的大型系统中,假如存在某个对象或数据流需要被进行繁杂的逻辑处理的话,我们可以选择在一个大的组件中进行这些繁杂的逻辑处理,这种方式确实达到了目的,但却是简单粗暴的.或许在某些情况这种简单粗 ...
- Chipmunk僵尸物理对象的出现和解决(四)
接上一篇,我们看看五角星和反弹棒碰撞时的代码: -(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair star:(CCNode * ...
- java组播MulticastSocket
在单播模式中有服务器端和客户端之分,而组播模式与单播模式不同,每个端都是以路由器或交换机做为中转广播站,任意一端向路由器或交换机发送消息,路由或交换机负责发送其他节点,每个节点都是同等的.所以在编程模 ...
- Leetcode_119_Pascal's Triangle II
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41851069 Given an index k, retu ...
- Java的字符串分割的不同实现
在java中实现字符串的分割相对而言是很简单的.我们一般会采取两中方式.一个是从jdk1.1就开始的StringTokenizer类,另一个是调用split方法进行分割.下面请看代码: import ...
- 高通 8x12 添加 TP和按键
1 .在tp的驱动文件中添加以下代码实现按键功能 [plain] view plain copy static ssize_t ft5x06_virtual_keys_register(struct ...
- 开源视频会议系统:OpenMeetings 安装方法
OpenMeetings是一个多语言可定制的视频会议和协作系统.说到OpenMeetings就应该提一下red5因为OpenMeetings 的视频服务是加载red5上面的.Red5是一款基于JAVA ...
- 《java入门第一季》StringBuffer类小案例
/* * 把数组拼接成一个字符串 */ public class StringBufferTest2 { public static void main(String[] args) { // 定义一 ...