ActiveMQ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ相关的知识,希望对你有一定的参考价值。

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.html​​ActiveMQ使用笔记(一)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​

 



以上是关于ActiveMQ的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ实例1--简单的发送和接收消息

使用 Python+Stomp.py 和 ActiveMQ 发送/接收图像

ActiveMQ的介绍及使用

同步 Spring ActiveMQ 接收器

springboot 简单使用 activemq 接收消息

在同一条消息中从嵌入式代理接收消息的最佳方式是啥?(ActiveMQ)