专业名词
JMS( Java Message Service):JAVA消息服务,Java 消息服务(Java Message Service,JMS)是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC (Java Database Connectivity), JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JML 客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本 (TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。
MOM(Message Oriented Middleware): 指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
基于JMS实现的MOM,又被称为JMS Provider。
常用的消息中间件
ActiveMQ
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上。支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA支持通过JDBC和journal提供高速的消息持久化;从设计上保证了高性能的集群,客户端-服务器,点对点;支持Ajax支持与Axis的整合;可以很容易的调用内嵌JMS provider。
RabbitMQ
RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。开发语言为Erlang。
RocketMQ
由阿里巴巴定义开发的一套消息队列应用服务。
ActiveMQ安装
本文安装环境:Centos6.5
1.下载
ActiveMQ官网: http://activemq.apache.org有下载
Linux下载命令:
wget https://archive.apache.org/dist/activemq/5.12.0/apache-activemq-5.12.0-bin.tar.gz
ActiveMQ5.10.x以上版本必须使用JDK1.8才能正常使用。
ActiveMQ5.9.x及以下版本使用JDK1.7即可正常使用。
2.解压
tar -zxvf apache-activemq-5.11.1-bin.tar.gz
重命名
(这步不是必须的,只是觉得名字太长,太麻烦,给解压出的文件夹改个名字)
mv apache-activemq-5.11.1 activemq
改权限
每个用户对文件夹的权限不同,需要查看,权限不足可以,可以通过更改权限或者切换用户来达到目的。
查看权限
ls -al activemq/bin
chmod 755 activemq
这里的755,你看着改吧。
-rwx-r–r-- (一共10个参数) 表示文件所属组和用户的对应权限。
第一个跟参数属于管理员,跟chmod无关,先不管.
2-4参数:属于user
5-7参数:属于group
8-10参数:属于others
接下来就简单了:r==>可读 w==>可写 x==>可执行
r=4 w=2 x=1
所以755代表 rwxr-xr-x
777 代表 rwxr-rwx-rwx 所有用户都可读可写可执行。
启动ActiveMQ
命令不一定要一样,就是要执行/activemq/bin下的activemq
你可以切换到/activemq/bin下面使用
./activemq start
然后怎么查看它是否启动成功?
其实我也不想用这种查看进程的方式来查看是否启动成功,如果你用知道啥status这类的命令告诉我可以好?
查看进程
ps aux | grep activemq
管理界面
ActiveMQ使用的是jetty提供HTTP服务.
如果没有登陆成功,可能是启动稍慢,建议短暂等待再访问测试
用户名: admin
密码: admin
端口8161是默认的,你也可以自己更改
修改conf下的jetty.xml文件中的port参数
更完记得重启,老规矩还是要到bin下执行
./activemq restart
关闭activemq
./activemq stop
访问登录界面的jsp出现503错误解决办法
查看你的linux主机名,然后修改hosts文件
vim /etc/hosts
在后面添加上你的主机名,保存后,重启activemq