概述
首先简单的介绍一下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息队列,干嘛用的呢,说白了就是一个消息的接收和转发的容器,可用于消息推送。
ActiveMQ是Apache所提供的一个完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现的消息中间件(Message Oriented Middleware,MOM),是JMS的一种实现。完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范。JMS是一组Java应用程序接口,它提供消息的创建、发送、读取等一系列服务。JMS提供了一组公共应用程 序接口和响应的语法,类似于Java数据库的统一访问接口JDBC,它是一种与厂商无关的API,使得Java程序能够与不同厂商的消息组件很好地进行通 信。
JMS支持两种消息发送和接收模型。一种称为P2P(Ponit to Point)模型,即采用点对点的方式发送消息。P2P模型是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的 异步传输称为可能,P2P模型在点对点的情况下进行消息传递时采用。
另一种称为Pub/Sub(Publish/Subscribe,即发布-订阅)模型,发布-订阅模型定义了如何向一个内容节点发布和订阅消息,这 个内容节点称为topic(主题)。主题可以认为是消息传递的中介,消息发布这将消息发布到某个主题,而消息订阅者则从主题订阅消息。主题使得消息的订阅 者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递,发布-订阅模型在消息的一对多广播时采用。
ActiveMQ的安装
下载并安装ActiveMQ服务器端
AMQ是使用java开发的,所以需要先安装jdk
1:从http://archive.apache.org/dist/activemq/下载最新的ActiveMQ
2:直接解压,然后拷贝到你要安装的位置就好了,不需要make,不需要make install
解压后的目录结构为
[root@localhost activemq-5.9.0]# ll
total 9952
-rwxr-xr-x. 1 501 games 10105484 Oct 14 2013 activemq-all-5.9.0.jar
drwxr-xr-x. 5 root root 4096 Mar 29 01:58 bin
drwxr-xr-x. 2 501 games 4096 Mar 29 01:58 conf
drwxr-xr-x. 2 501 games 4096 Mar 29 01:58 data
drwxr-xr-x. 2 501 games 4096 Mar 29 01:58 docs
drwxr-xr-x. 8 501 games 4096 Mar 29 01:58 examples
drwxr-xr-x. 6 501 games 4096 Mar 29 01:58 lib
-rw-r--r--. 1 501 games 40580 Oct 14 2013 LICENSE
-rw-r--r--. 1 501 games 3334 Oct 14 2013 NOTICE
-rw-r--r--. 1 501 games 2610 Oct 14 2013 README.txt
drwxr-xr-x. 8 501 games 4096 Mar 29 01:58 webapps//后台管理
drwxr-xr-x. 3 root root 4096 Mar 29 01:58 webapps-demo
从它的目录来说,还是很简单的:
--bin存放的是脚本文件
--conf存放的是基本配置文件
--data存放的是日志文件
--docs存放的是说明文档
--examples存放的是简单的实例
--lib存放的是activemq所需jar包
--webapps用于存放项目的目录
启动ActiveMQ
1.普通启动:到ActiveMQ/bin下面,
[root@localhost bin]# ./activemq start
INFO: Using default configuration
(you can configure options in one of these file: /etc/default/activemq /root/.activemqrc) INFO: Invoke the following command to create a configuration file
./activemq setup [ /etc/default/activemq | /root/.activemqrc ] INFO: Using java '/usr/local/software/jdk1.7.0_25/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/usr/local/software/activemq-5.9.0/data/activemq-localhost.localdomain.pid' (pid '4266')
2.启动并指定日志文件
[root@localhost bin]# ./activemq start > /tmp/activemqlog
检查是否已经启动
ActiveMQ默认采用61616端口提供JMS服务,使用8161端口提供管理控制台服务,执行以下命令以便检验是否已经成功启动ActiveMQ服务:
1:比如查看61616端口是否打开: netstat -an | grep 61616
[root@localhost bin]# netstat -an | grep 61616
tcp 0 0 :::61616 :::* LISTEN
2:也可以直接查看控制台输出或者日志文件
3:还可以直接访问ActiveMQ的管理页面,ActiveMQ默认启动时,启动了内置的jetty服务器,提供一个用于监控ActiveMQ的admin应用。
http://192.168.0.101:/admin/
默认的用户名和密码是admin/admin
至此,服务端启动完毕
关闭ActiveMQ
可以用./activemq stop
暴力点的可以用ps -ef | grep activemq 来得到进程号,然后kill掉