MQ服务

MQ

(IBM MQ)

MQ传递主干,在世界屡获殊荣。 它帮您搭建企业服务总线(ESB)的基础传输层。IBM WebSphere MQ为SOA提供可靠的消息传递。它为经过验证的消息传递主干, 全方位、 多用途的数据传输, 并帮助您搭建企业服务总线的传输基础设施。

消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

IBM WebSphere MQ 支持两种不同的应用程序编程接口:Java 消息服务(JMS)和消息队列接口(MQI)。在 IBM WebSphere MQ 服务器上,JMS 绑定方式被映射到 MQI。应用程序直接与其本地队列管理器通过使用 MQI 进行对话,MQI 是一组要求队列管理器提供服务的调用。MQI 的引人之处是它只提供 13 次调用。这意味着对于应用程序编程员它是一种非常易于使用的接口,因为大部分艰苦工作都将透明完成的。

IBM WebSphere MQ 产品支持应用程序通过不同组件如处理器、子系统、操作系统以及通信协议的网络彼此进行通信。

功能

编辑

· 跨任何商业IT系统连接应用程序和Web服务, 提供完整的JMS(Java消息服务)支持 [1]  , 包括发布-订阅。

· 对Web服务的整合化支持。

· 基于Eclipse的新工具—MQ Explorer, 适用于Windows和Intel(x86), 支持整个消息传递主干的远程和安全配置。

· WebSphere MQ V6.0.2增强了JMS和安全性, 构建在WebSphere MQ V6.0中引入的新配置工具之上, 该工具以新Eclipse插件的形式提供, 可增强您的MQ Explorer控制台。

· 与WebSphere Application Server的消息传递服务无缝互操作。

· 支持行业标准安全套接字层(Secure Sockets Layer, SSL)安全性, 并提供扩展安全版本来获得高级安全特性。

· 支持推进现有FTP基础设施, 确保通过WebSphere MQ进行可靠、 安全的文件传输。

· 支持的操作系统: AIX、 HP Unix、 i5/OS、 Linux、 Sun Solaris、 Windows、 z/OS。

=====================================================================================================================================================================================

举例:

比如登陆系统,在登陆之后需要调用短信系统给用户发短信说已经登陆,同时还需要调用日志系统记录登陆日志,需要调用积分系统对登陆签到的积分进行增加 等等等。

这种情况下,登陆系统和日志系统,短信系统,积分系统等等 强耦合,其中存在可能调用失败,信息丢失等风险,同时会提高系统复杂度。

比如说登陆之后调用日志系统失败,那么该次登陆的日志信息就会丢失,无法再找回。

而且顺序执行,会导致登陆系统运行效率低。

那么如果使用消息中间件,登陆之后只需要将任务推入到消息队列中,就不用去管了。其他系统则从队列中去获取任务。

实现解耦和异步调用 (异步是相对于同步而言,同步是就等待,当系统执行某个任务的时候,一定要等到该任务结束,系统才会继续往下执行,异步则不等待。)

同时还有可以实现横向拓展 安全可靠优点

2.常见MQ的类型

activeMQ 对java支持良好,缺点是对其他语言支持不够友好,适合中小企业系统

rabbitMQ 对java支持良好,对其他语言也支持良好,跨平台,语言无关

kaffka 日志消息中间件 支持大数据场景

3.JMS规范

MQ实现参照了jms规范,(规范就是一种约定)

该规范中包括

提供者:实现jms规范的中间件服务器

客户端:发送或者接受消息的应用程序

生产者/发布者:创建并发送消息的客户端

消费者/订阅者:接受并处理消息的客户端

消息:应用程序之间传递的内容

消息模式:在客户端之间传递消息的方式,jms中定义了主题和队列两种模式

主题模式:

假如发布者发布了100条消息,那么如果有n个订阅者,每个订阅者都可以获取到100条消息。即订阅者可以获取到所有的消息(但如果订阅是在主题发布消息之后,则获取不到任何消息,只能获取到订阅时间之后主题的发布的消息,比如说A订阅了B, B发布了消息,C再订阅了B,那么只有a能够获取到消息,C不能,因为它的订阅行为发生在B发布消息之后)

队列模式:

假如生产者发送了100条消息,如果有n个消费者,那么每个订阅者加起来获取到的消息总数是100。

没有时间上限制。只要队列中有消息,消费者可以任意时间去取消息,一个消息只能被一个消费者消费。

4.jms约定的接口

ConnectionFactory 获取与MQ服务连接的工厂类

Connection 与MQ服务的连接, 由ConnectionFactory 创建

Session 会MQ服务的会话 由Connection 创建

MessageProducer 消息生产者,由Session 创建

MessageConsumer 消息消费者 由Session创建

Message 消息,由Session创建

Desination 消息的目的地

---------------------
(部分内容来源于百度百科)
来源:CSDN
原文:https://blog.csdn.net/qq_20009015/article/details/81409346

原文地址:https://www.cnblogs.com/weishenme/p/11266165.html

时间: 2024-07-30 20:03:58

MQ服务的相关文章

IBM WebSphere MQ介绍安装以及配置服务详解

首先介绍一下MQ MQ消息队列的简称是一种应用程序对应用程序的通信方法.说白了也就是通过队列的方式来对应用程序进行数据通信.而无需专用链接来链接它们. MQ的通讯方式 1.数据报的方式 Datagram (Send and forget) 应用程序在创建完消息后.利用MQ的API将消息发送到队列中.它充分利用了MQ(once and once only ) 2.请求和应答方式 Request/Reply 发送消息之后需等待对方处理结果.  需考虑如下问题: a.等待应答的时间是多少? b.如果没

JVM+分布式+算法+锁+MQ+微服务+数据库 面试题

JAVA基础 1.JAVA中的几种基本数据类型是什么,各自占用多少字节 Java基本数据类型有8种: 名词解释: bit:位,计算机存储数据的最小单位,二进制数中的一个 位数. byte:字节,计算机存储数据的基本单位,一个字节由8位二进制数组成.通常一个汉字占两个字节. 2.String类能被继承吗,为什么. 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变. 关于final修饰符,介绍如下: 根据程序上下文环境,Java关键字final有“

JMS 之 Active MQ 启动嵌入式Broke

一.如何启动active MQ 服务 (一).使用命令启动 a./usr/local/activemq-5.9.0/bin 目录下 ./activemq start 默认使用conf/activemq.xml 配置文件 b.[[email protected] bin]# ./activemq start xbean:file:../conf/activemq-slave1.xml 使用指定的配置文件启动 (二).代码启动broker 在程序中可以通过编码的方式启动broker,如果要启动多个b

与MQ通讯的完整JAVA程序

这份程序的原始文档是来自于互联网,不过不知道作者是谁,在些先谢了,我增加了个人的理解在里面,增加注释,这样便于阅读与理解. 该程序实现了发送消息与读取消息的功能,见其中的send***与get***方法.这只适合于测试,因为环境中的程序还需要对此有稍微的更改,在真实的环境中肯定是在while(true){...}的无限循环中去调用其中的get方法,如果有值,那就执行对消息的处理操作,如果没有值就继续循环,在get方法中有等待的时间. 这个程序就其本身来说还是比较理解的: 1.首先设置一些相关的环

通过JAVA从MQ读取消息的时候报错及解决

如果是通过JAVA将消息写入到MQ,再通过JAVA去读取消息,采用MQMessage读消息的方法readUTF()去读取的时候,就不会报错,可以正常读出来.如果采用在MQ资源管理器中插入测试消息或者是通过另外一台MQ服务器往当前MQ服务器通过远程队例写消息过来,通过JAVA读取出会错,我这里疑点有两个: 1.通过MQ资源管理器放入的消息的编码是什么?是否在读消息的时候需要指定读消息的编码?我通过JAVA进入的编码为1381,读的时候也是1381 2.我现在JAVA这边的MQ LIB是从WEBSP

WebSphere MQ消息通道管理总结

WebSphere MQ作为IBM软件家族的消息传输中间件产品,以其出色的特性和功能在业界享有盛誉.WebSphere MQ独特的安全机制.简便快速的编程风格.卓越不凡的稳定性.可扩展性和跨平台性,以及强大的消息通讯能力,使得它在银行.电信,还是在交通运输.政府机关等各行各业,赢得了很高的市场份额.在中国,WebSphere MQ同样拥有广泛的用户基础和许许多多的成功案例.它不仅具有跨平台.跨网络的特性,而且以其特有的先进机制保证对消息的"Once and Once only"的传输,

Active MQ C#实现

原文链接: Active MQ C#实现 内容概要 主要以源码的形式介绍如何用C#实现同Active MQ 的通讯.本文假设你已经正确安装JDK1.6.x,了解Active MQ并有一定的编程基础. 正文 JMS 程序的最终目的是生产和消费的消息能被其他程序使用,JMS 的 Message 是一个既简单又不乏灵活性的基本格式,允许创建不同平台上符合非JMS 程序格式的消息. Message 由消息头,属性和消息体三部份组成. Active MQ支持过滤机制,即生产者可以设置消息的属性(Prope

IBM MQ 学习

1 import java.io.IOException; 2 import java.util.HashMap; 3 import java.util.Map; 4 5 import com.ibm.mq.MQC; 6 import com.ibm.mq.MQEnvironment; 7 import com.ibm.mq.MQException; 8 import com.ibm.mq.MQGetMessageOptions; 9 import com.ibm.mq.MQMessage; 1

MQ java 基础编程(一)

本文转自:http://www.blogjava.net/i369/articles/88035.html 编写人:邬文俊 编写时间 : 2006-2-16 联系邮件 : [email protected] 前言 通过 2 个多星期对 MQ 学习,在 partner 丁 & partner 武 的帮助下完成了该文档.该文档提供一个简单的例子,通过对该例子的讲解,你将知道: 1.         用 java 写客户端从 MQ Server 收发消息. 2.         MQ 作为 Websp