一、什么是ActiveMQ

度娘给出的定义:

Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。

ActiveMQ的官网打出的标语(如上图):

Flexible & Powerful Open Source Multi-Protocol Messaging

大意是:兼容性好并且功能强大的开源多协议消息中间件,那具体是怎么体现的呢?
1.兼容性好:
ActiveMQ可以很容易内嵌到使用Spring的系统里面去,
通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
2.功能强大:
支持通过JDBC和journal提供高速的消息持久化,
支持客户端-服务器,点对点
支持Ajax
支持与Axis的整合, WebServices
可以很容易的调用内嵌JMS provider进行测试
从设计上保证了高性能的集群

3.多协议:
应用协议有OpenWire,Stomp REST,WS Notification,XMPP,AMQP,
还支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
总之一句话,ActiveMQ是一个消息中间件并且很好很强大,需要用到消息中间件的时候我们选他就对了。

二、ActiveMQ的名词解释

在JMS规范中,所有的标准定义都在javax.jms包中,它的功能实现和我们即将要写的代码中都会用到下面的内容:

1.Destination(目的地)
用于对Message进行管理的对象,由ActiveMQ负责维护。
MessageProducer需要指定Destination才能发送消息,MessageConsumer需要指定Destination才能接收消息。
2.Producer(消息生产者)
负责生成消息并发送目的地。应用接口为MessageProducer。
3.Consumer(消息消费者)
负责从目的地中消费【处理|监听|订阅】Message。应用接口为MessageConsumer
4.Message(消息)
消息封装一次通信的内容。常见类型有:StreamMessage、BytesMessage、TextMessage、ObjectMessage、MapMessage。
5.ConnectionFactory(连接工厂)
用于创建连接的工厂类型
6.Connection(连接)
用于建立访问ActiveMQ连接的类型, 由链接工厂创建。
7.Session(会话)
一次持久有效有状态的访问。由connection创建,是具体操作消息的基础支撑。
8.Queue & Topic
Queue是队列目的地,Topic是主题目的地。都是Destination的子接口。
Queue特点: 队列中的消息,默认只能由唯一的一个消费者处理。一旦处理,消息删除。
Topic特点:主题中的消息,会发送给所有的消费者同时处理。只有在消息可以重复处理的业务场景中可使用。
9.PTP(Point to Point,点对点消息模型)
就是基于Queue实现的消息处理方式。
10.PUB & SUB(Publish & Subscribe ,消息的发布/订阅模型)
是基于Topic实现的消息处理方式。

三、Windows下安装ActiveMQ

官网上下载即可:

下载后直接解压缩直接就能用(免安装)。

它的目录结构:

bin/是服务启动相关的命令文件所在目录

data/是默认持久化文件所在目录

docs/里面放的是用户手册

conf/是配置文件所在目录,任何配置文件修改后,必须重启ActiveMQ,才能生效.
有几个配置文件需要提下,后面会用到:
1.activemq.xml
就是spring配置文件。配置的是ActiveMQ应用使用的默认对象组件.
transportConnectors标签 - 配置链接端口信息的. 其中的端口号61616是ActiveMQ对外发布的tcp协议访问端口. 就是java代码访问ActiveMQ时使用的端口.

配置安全认证和持久化都是在这个文件里面。

2.jetty.xml
spring配置文件, ActiveMQ使用的是jetty提供HTTP服务,因此需要该文件用于配置jetty服务器的默认对象组件.

3.users.properties
内容信息: 用户名=密码

是用于配置客户端通过协议访问ActiveMQ时,使用的用户名和密码.

4.groups.properties

内容信息: 用户组=用户1,用户2(多个用户中间用逗号隔开)

类似于角色的概念,也类似于操作系统用户所在的用户组

四、启动服务,并到页面控制台查看
双击bin\win64目录下的activemq批处理文件,即可启动(如果系统是32位的,就启动bin\win32目录下的)。

启动完成后,可以进入页面控制台查看。

同RabbitMQ类似,ActiveMQ也默认支持一个网页版的服务查看站点,可以实现ActiveMQ中消息相关数据的页面查看.
ActiveMQ网页版管理站点的默认端口8161端口就配置在jetty.xml文件中。

访问http://localhost:8161/admin/,输入默认的用户名和密码admin/admin,即可看到管理台页面。

可以看到在前面名词解释中提到的内容

至此,ActiveMQ就安装完了。

ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)的更多相关文章

  1. ActiveMQ入门系列之应用:Springboot+ActiveMQ+JavaMail实现异步邮件发送

    现在邮件发送功能已经是几乎每个系统或网址必备的功能了,从用户注册的确认到找回密码再到消息提醒,这些功能普遍的会用到邮件发送功能.我们都买过火车票,买完后会有邮件提醒,有时候邮件并不是买完票立马就能收到 ...

  2. ActiveMQ入门系列二:入门代码实例(点对点模式)

    在上一篇<ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)>中,大致介绍了ActiveMQ和一些概念,并下载.安装.启动他,还访问了他的控制台页面. 这篇,就用代 ...

  3. ActiveMQ入门系列三:发布/订阅模式

    在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点 ...

  4. Kafka 安装配置 windows 下

    Kafka 安装配置 windows 下 标签(空格分隔): Kafka Kafka 内核部分需要安装jdk, zookeeper. 安装JDK 安装JDK就不需要讲解了,安装完配置下JAVA_HOM ...

  5. k8s入门系列之集群安装篇

    关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...

  6. k8s 入门系列之集群安装篇

    关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...

  7. OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(下)

    1 UI5代码结构 上一次我们一起用了20秒的时间完成一个UI5版的Hello World.应用打开后有一个按钮,按钮的文字是Hello World,点击这个按钮之后,按钮会慢慢的消失掉(Fade o ...

  8. 在Debian下安装使用Windows下的字体

    转载:http://blog.163.com/lixiangqiu_9202/blog/static/53575037201251224553801/ Debian下的字体不太好看,没有windows ...

  9. STM32入门系列-开发工具keil5安装

    主要介绍如下三部分内容: keil5软件获取 keil5安装 安装STM32芯片包 软件获取 可以通过搜索引擎搜索关键字"KEIL5下载",找到其官方网站www.keil.com. ...

随机推荐

  1. ffmpeg+nginx搭建直播服务器

    Nginx与Nginx-rtmp-module搭建RTMP视频直播和点播服务器 https://zhuanlan.zhihu.com/p/28009037 FFmpeg总结(十三)用ffmpeg基于n ...

  2. linux shell中如何让$就表示为$呢?

    答: 在$前加转义符\ 如: \$

  3. 图像模糊C均值聚类分割代码

    转自:直觉模糊C均值聚类与图像阈值分割 - liyuefeilong的专栏 - CSDN博客 https://blog.csdn.net/liyuefeilong/article/details/43 ...

  4. LC 592. Fraction Addition and Subtraction

    Given a string representing an expression of fraction addition and subtraction, you need to return t ...

  5. 利用redis 分布式锁 解决集群环境下多次定时任务执行

    定时任务: @Scheduled(cron= "0 39 3 * * *") public void getAllUnSignData(){ //检查任务锁,若其它节点的相同定时任 ...

  6. PHP 调用C# WebService

    在VS2010中新建WebService:Finance.asmx 代码如下: using System.Web.Services; namespace WebTest.WebService { // ...

  7. react 组件创建

    /** * 数据屏蔽 * Created by 2016-12-02. */ import React, {Component} from 'react'; export default class ...

  8. onethink多图上传

    模板处理, 可以参考 checkbox 的. 注:edit 方法的 基本一样,需要先把已有的数据展示出来,绑定双击事件,删除图片 需要先绑定给已经展示出来的图片, uploadPicture 的cal ...

  9. Java实现汉诺塔移动,只需传一个int值(汉诺塔的阶)

    public class HNT { public static void main(String[] args) { HNT a1 = new HNT(); a1.lToR(10); //给汉诺塔a ...

  10. Netty学习篇①

    什么是netty Netty封装了JDK自带的NIO,运用起来更加简单快速,Netty是一个异步事件驱动的网络应用框架,让开发更加简便 Netty相比JDK自带的NIO的优点 Netty的api调用简 ...