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的实现,部分特点:多种语言和协议编写;完全支持JMS和J2EE各版本;支持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 (主配置文件,通过此文件可优化配置,如撤销存储策略,broker的memoryUsage阀值,配置监听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)