当前位置:   article > 正文

Java开发中常用的消息队列工具 ActiveMQ_java activemq 实现一个简单的消息队列

java activemq 实现一个简单的消息队列

1 、简介

ActiveMQ

同类产品: RabbitMQ 、 Kafka、Redis(List)

1.1 对比RabbitMQ

最接近的同类型产品,经常拿来比较,性能伯仲之间,基本上可以互相替代。最主要区别是二者的协议不同RabbitMQ的协议是AMQP(Advanced Message Queueing Protoco),而ActiveMQ使用的是JMS(Java Messaging Service )协议。顾名思义JMS是针对Java体系的传输协议,队列两端必须有JVM,所以如果开发环境都是java的话推荐使用ActiveMQ,可以用Java的一些对象进行传递比如Map、BLob、Stream等。而AMQP通用行较强,非java环境经常使用,传输内容就是标准字符串。

另外一点就是RabbitMQ用Erlang开发,安装前要装Erlang环境,比较麻烦。ActiveMQ解压即可用不用任何安装。

1.2 对比KafKa

Kafka性能超过ActiveMQ等传统MQ工具,集群扩展性好。

弊端是:

在传输过程中可能会出现消息重复的情况,

不保证发送顺序

一些传统MQ的功能没有,比如消息的事务功能。

所以通常用Kafka处理大数据日志。

1.3 对比Redis

其实Redis本身利用List可以实现消息队列的功能,但是功能很少,而且队列体积较大时性能会急剧下降。对于数据量不大、业务简单的场景可以使用。

2 安装 ActiveMQ

拷贝apache-activemq-5.14.4-bin.tar.gz到Linux服务器的/opt

   解压缩 tar -zxvf apache-activemq-5.14.4-bin.tar.gz

   重命名 mv  apache-activemq-5.14.4  activemq

   vim /opt/activemq/bin/activemq 

查看java环境:vim /etc/profile    或者   echo $JAVA_HOME

增加两行

JAVA_HOME=”/opt/jdk1.8.0_152″

JAVA_CMD=”/opt/jdk1.8.0_152/bin”

注册服务

ln -s  /opt/activemq/bin/activemq  /etc/init.d/activemq(软连接必须使用绝对路径)

chkconfig –add activemq

禁止使用

# cp /opt/activemq/bin/activemq /etc/init.d/activemq

启动服务

service activemq start

Java开发中常用的消息队列工具 ActiveMQ

关闭服务

service activemq stop

通过netstat 查看端口

# netstat -tlnp

t:表示tcp

l:表示监听

<
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号