WebSphere MQ&&ActiveMQ

  • WebSphere MQ

1、  中间件处于应用软件与系统软件之间,是一种以自己的复杂换取企业应用简单化的可复用的基础软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。

2、  三种通信技术:

RPC(remote process call):同步;

CPI-C:同步;

MQI(message queue interface):异步通信方式,通信的方式与传送协议无关。

3、  中间件产品:

消息中间件:IBM WebSphere MQ

交易中间件:IBM CICS,Bea tuxedo

对象中间件:IBM componentbroker,ionaorbix,borland,visibroker

应用服务器:IBM WebSphere,Bea weblogic

安全中间件:entrust

应用集成服务器:lss flowwan,IBM flowman,vitria businessagiliti

4、  WebSphere MQ由消息传输系统和应用程序接口组成,资源是消息和队列;

消息传输系统:用于确保队列之间的消息提供,包括网络中不同系统上的远程队列之间的消息提供,并保证网络故障或关闭后的恢复;

应用程序接口:应用程序和消息系统之间通过WebSphere MQ API实现(API在所有WebSphere MQ平台上是一致的,API只有14个调用2个动作(发送put和接收get))

消息:Request Message,Reply Message,Report Message,Datagram Message

一个消息包含两个因素:消息描述和数据消息

消息描述:用于定义,如消息传输目标

数据消息:如应用程序数据或数据库查询

队列:一个安全的存储消息的地方,消息的存储一般是顺序的,队列是消息分阶段的传送和接收,因为消息存放在队列中,所以应用程序可以相互独立的运行,以不同的速度,在不同的时间,不同的地点;

注:程序之间的通信通过传递消息而非直接调用程序;WebSphere MQ最基本而最重要的技术——可靠消息传输,它具有特殊的技术防止消息重复传送,确保消息一次且仅一次传送(once-and-only-once

5、  重要特点:

统一接口:目标应用程序位置的透明性(target application location transparency;

处理不依赖时间的限制:异步处理

给分布式处理提供强健的中间件:保证数据一致性,信息的传输(once-and-only-once,并可在系统故障时,及时恢复,业务不受影响

小节:

WebSphere MQ是基于消息队列Message Queue或消息传送MessagePassing的中间件,主要功能是在应用程序之间传送消息,这些消息可以在不同的网络协议,不同的计算机系统和不同的应用软件之间传送,使用它可简单方便的开发出可靠高效的分布式应用系统;

WebSphere的技术可实施在广泛的IBM和非IBM平台上,提供了一个面向业务的信息技术架构(基于WebSphere MQ的应用程序可以更接近的模拟商业问题,更容易设计、开发和维护),使得基于它的应用无结构限制,应用程序之间可以是一对一、一对多、多对多的关系,应用程序之间信息传递可以是单向或双向,灵活的结构,支持平衡工作负荷、并发处理、多路广播及其它应用程序之间的关系,总之是应用程序充分接近业务需求,并且当应用需求改变时,WebSphere MQ的结构可以很容易的跟着改变。

 

  • Active MQ

1、  Active MQ是开源的JMS的实现,部分特点:多种语言和协议编写;完全支持JMSJ2EE各版本;支持Ajax(异步应用);调整的信息持久化等。

2、  消息生产者――》消息队列――》消费者

JMS(java message service):MOM(messageoriented middleware面向消息的中间件),应用程序在异步情况下可靠的传输和接收消息

Message producer:消息生产者

JMS provider:消息提供者(中转站)

JMS consumer:消费者(接收者)

JMS消息传递模式:

点对点模式:p2p,每个消息只能被一个接收者接收;每条消息要么被接收者从队列中取走,要么被JMS Provider在超时情况下删除;消息产生的时候接收者不一定存在,接收者可以在消息产生的任何时候取走消息;

发布/订阅模式:发送者为发布者,接收者为订阅者,一个消息可以有很多接收者,订阅者只能接收它订阅的主题中的消息,订阅者在消息发送的时候必须是活动的,并随时准备接收消息,否则会错过该消息。

JMS消息的组成:消息头(header);属性(property);消息体(body:bytemessage,mapmessage,streammessage,textmessage,objectmessage.

3、  安装(必须先安装JDK(JavaDevelopment kit)才能装Active MQ):

#mkdir /usr/java

#tar zxvf  /usr/src/ jdk-8u51-linux-x64.tar.gz  -C /usr/java/

#cd /usr/java/

#ln -s  jdk1.8.0_51  /usr/java/jdk

#ls -l  (查看链接是否正确)

#vim /etc/profile.d/java.sh

JAVA_HOME=/usr/java/jdk

Export  JAVA_HOME

Export  PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

#source /etc/profile.d/java.sh

#java -version

#javac -version  (有正确结果输出则环境配置正确)

 

#tar zxvf  /usr/src/ apache-activemq-5.12.0-bin.tar.gz  -C /usr/java/

#cd /usr/java/

#ln -s  apache-activemq-5.12.0  /usr/java/activemq

#ll  (查看软链接是否正确)

#vim /usr/java/activemq/conf/activemq.xml (主配置文件,通过此文件可优化配置,如撤销存储策略,brokermemoryUsage阀值,配置监听IP<transportConnectors>段等)

#/usr/java/activemq/bin/activemq  start|stop

#netstat   lntup  | egrep “61616|8161”

#ps -ef  |  grep activemq

#pkill java

http://localhost:8161/admin  (浏览器登陆,可用图形化管理,首次登陆用户名密码均为admin