ActiveMQ的简单介绍和安装

来源:互联网 发布:township清除数据ios 编辑:程序博客网 时间:2024/05/22 20:29

前言:


最近接触到了消息队列,学习了activeMQ,在这里做一个简单记录,方便以后查询。


一、什么是ActiveMQ


1.1介绍

       ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。

1.2特点

⒈ 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议:OpenWire,Stomp REST,WS Notification,XMPP,AMQP 

⒉ 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)

⒊ 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性 

⒋ 通过了常见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的整合 

⒑ 可以很容易得调用内嵌JMSprovider,进行测试


二、ActiveMQ的消息形式


ActiveMQ对于消息的传递有两种类型:

1.一种是点对点的,即一个生产者和一个消费者一一对应;

2.另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。

JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。五种形式如下:

· StreamMessage -- Java原始值的数据流

· MapMessage--一套名称-值对

· TextMessage--一个字符串对象

· ObjectMessage--一个序列化的 Java对象

· BytesMessage--一个字节的数据流


三、ActiveMQ的应用场景


ActiveMQ作为消息队列的一种,它的应用场景实际上就是消息队列的应用场景,这里就说一下他的应用场景:

1. 异步处理:

拿一个用户下订单发货举例子,订单发货以后需要给用户发送短信,在这期间需要修改数据库还要发送短信,如果使用传统的方式修改数据库然后发短信,需要消耗修改数据库的时间和发短信的时间,如果使用消息队列,我们就只需要修改数据库和写入消息队列,写入消息队列的时间基本可以忽略,这样系统的响应时间会有所提升

2. 应用解耦:

比如:在电商分布式系统中,有两个系统:1.elasticsearch搜索系统2.商品系统,假如我们添加了一款商品,那么需要在elasticsearch的索引库中添加一个索引。传统的方式是商品系统直接调用搜索系统的服务,假如搜索系统无法访问,那么就会导致添加商品失败。如果使用消息队列就会避免这种情况,而且还会降低耦合度

3. 流量削锋:

比如:秒杀活动,一般会因为流量过大,导致流量暴增,系统瘫痪。为解决这个问题,一般需要在应用前端加入消息队列。


四、ActiveMQ的安装


4.1下载

1.下载地址:http://activemq.apache.org/download.html


4.2准备安装环境

1、需要jdk

2、安装Linux系统。生产环境都是Linux系统。(为了方便我直接安装到了windows中)

4.3安装

ActiveMQ的安装和tomcat的安装很类似,直接解压就可以使用

1.Windows系统安装,

直接解压尽可以使用,运行文件夹下的activemq.bat.bat即可


2.linux系统安装

第一步:把ActiveMQ 的压缩包上传到Linux系统。

第二步:解压缩。

第三步:启动。

使用bin目录下的activemq命令启动:

[root@localhost bin]# ./activemq start

关闭:

[root@localhost bin]# ./activemq stop

查看状态:

[root@localhost bin]# ./activemq status

linux安装可能存在问题:

问题:

Linux安装的activeMQ,如果访问activeMQ时候,发现报错405

解决:

修改hosts文件,配置机器名和127.0.0.1的映射关系。

1.在/etc/sysconfig/network文件中定义了机器名:


2.修改配置,进行映射


3.重新启动Activemq的服务

4.4测试

Linux注意打开防火墙:8161

进入管理后台:

http://127.0.0.1:8161/admin

用户名:admin

密码:admin



原创粉丝点击