ActiveMQ初体验
首先介绍下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息队列,干嘛用的呢,
说白了就是一个消息的接受和转发的容器,可用于消息推送。
下面介绍主题,就是今天为大家介绍的ActiveMQ:
他是Apache出品的一个开源的消息队列软件,运行在JVM下,支持多种语言,如JAVA,C++,C#。
现在先为大家介绍下如何配置ActiveMQ的服务器端:
1、当然是下载软件了
去官方网站下载:http://activemq.apache.org/ 我下载的是apache-activemq-5.8.0-bin 5.8版本,
当然开源的也是支持下载source的,需要自己编译下,这里不做过多介绍
2、解压后,进入\apache-activemq-5.8.0\bin\win32启动activemq.bat。
系统会自动执行启动过程,当然一般安装失败的情况是没有装JVM环境
3、打开浏览器输入http://localhost:8161/admin/默认配置是这个,当然你也可以更改这个配置
3、在ActiveMQ中,有两个概念,一个是生产者(Producer),另一个是消费者(Consumer),
生产者就是我们常说的发布者,而消费者,就是订阅者,
这样解释可能更好理解一下吧,
如果知道发布订阅模式的话,不知道的话,字面意思也很好理解,发布者就是发布消息的,
而订阅者通过订阅事件,将消息接收到;
http://blog.sina.com.cn/s/blog_4b5bc0110100kb8d.html一:jms介绍
jms说白了就是java message service,是J2EE规范的一部分,跟jdbc差不多,sun只提供了接口,
由各个厂商(provider)来进行具体的实现,然后使用者使用他们的jar包进行开发使用即可。
另外在jms的API中,jms传递消息有两种方式,一种是点对点的Queue,还有一个是发布订阅的Topic方式。区别在于:
对于Queue模式,一个发布者发布消息,下面的接收者按队列顺序接收,比如发布了10个消息,两个接收者A,B那就是A,B总共会收到10条消息,不重复。
对于Topic模式,一个发布者发布消息,有两个接收者A,B来订阅,那么发布了10条消息,A,B各收到10条消息。
关于api的简单基础可以看下:http://www.javaeye.com/topic/64707,简单的参考!
二:ActiveMQ介绍
activeMQ是apache下的一个开源jms产品,具体参见 apache官方网站;
Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols ,
comes with easy to use Enterprise Integration Patterns and many advanced features
while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License
三:开始实现代码
1:使用activeMQ来完成jms的发送,必须要下载activeMQ,然后再本机安装,并且启动activeMQ的服务才行。
在官网下载完成之后,运行bin目录下面的activemq.bat,将activeMQ成功启动。
启动成功之后可以运行:http://localhost:8161/admin/index.jsp 查看一下。
2:发送端,sender
http://www.blogjava.net/pzxsheng/archive/2013/03/15/396462.htmlActiveMQ使用笔记(一)ActiveMQ的安装
安装要求:
部署需要jdk1.5及以上,编译需要jdk1.5(java5)及以上
Java的环境变量(JAVA_HOME)必须设置,即jdk安装的目录,比如c:\Program Files\jdk.1.6
下载ActiveMQ:http://activemq.apache.org/download.html
解压
运行bin文件夹下的activemq.bat
验证是否运行成功:
在浏览器中输入:http://localhost:8161/admin/,出现如下图所示表示成功:
此时,ActiveMQ已经安装完成了,接下来配置登录监视控制台的用户名和密码。
打开conf文件夹下的jetty.xml,找到
<bean id="securityConstraint">
<property name="name" value="BASIC" />
<property name="roles" value="admin" />
<property name="authenticate" value="false" />
</bean>
把authenticate属性的值改成true即可,重启activemq.bat,再登录监视控制台,就需要输入密码了,默认的用户名和密码是admin/admin。roles属性指的是登录的用户角色,这些登录的用户在jetty-realm.properties配置。
修改web的访问端口,在jetty.xml找到一下配置,修改8161即可。
<property name="connectors">
<list>
<bean id="Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<property name="port" value="8161" />
</bean>
</list>
</property>
ActiveMQ的运行日志存放在data文件夹下的activemq.log中。
Linux和Aix系统下的安装:
解压:tar zxvf activemq-x.x.x.tar.gz,进入bin文件夹,运行:./activemq start &,也可以只运行:./activemq console。
验证方式和安全性配置和windows下的配置一样
activeMQ密码配置
http://blog.163.com/czg_e/blog/static/4610456120133109443755/
ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到
<bean id="securityConstraint" class="org.eclipse.jetty.http.security.Constraint">
<property name="name" value="BASIC" />
<property name="roles" value="admin" />
<property name="authenticate" value="false" />
</bean>
将property name为authenticate的属性value="false" 改为"true",
控制台的登录用户名密码保存在conf/jetty-realm.properties文件中,内容如下:
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: admin, admin
值得注意的是 用户名和密码的格式是
用户名 : 密码 ,角色名
http://www.blogjava.net/pzxsheng/archive/2013/03/15/396462.html