activeMQ搭建和简单使用

        最近闲暇的时候在看一本书,关于分布式系统的,作者从使用者的角度和开发者的角度讲述了分布式系统的大体架构、组成以及一些分布式系统使用到的技术等等。其中,作者在讲突发流量到来的时候的消峰策略时,提到了一种通过异步调用来实现消峰的方式——使用消息队列MQ(message queue)。此时作者简单说了说两种消息队列的开源实现,apache开源的activeMQ和阿里开源的RocketMQ。其中activeMQ是为企业级应用而服务,而RocketMQ更适合用于高并发和海量数据的场景。一时兴起,学习了学习activeMQ。

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

⒈ 多种语言和协议编写客户端。语言: 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的整合
⒑ 可以很容易的调用内嵌JMS provider,进行测试
 
        首先是activeMQ的下载和安装。个人不太建议activeMQ通过apt-get方式安装,反正我是在一个云服务器中进行安装的,通过apt-get方式安装的话,对应的网络管理系统(默认8161端口访问)是没有的,估计是我安装得有问题吧。直接从apache的网站上可以下载到activeMQ的可执行文件: http://activemq.apache.org/,我安装时最新版本是 5.15.1。下载apache-activemq-5.15.1-bin.tar.gz文件到云服务器上,tar命令解压,编辑bin文件夹下的env文件,添加JAVA_HOME的路径(activeMQ是用JAVA写的,当然需要java环境)。这里我用的是1.8的java可用,1.6版本的java我试过了,不能用,运行时会报错,1.7_051版本的java我也试过了,也会出错,显示版本不对,所以还是直接用1.8版本的java好。配置完成后直接通过root权限执行bin文件夹下的activemq(这是一个脚本文件),sudo ./activemq start 表示在后台执行,如果想关闭通过sudo ./activemq stop;sudo ./activemq console表示通过窗口执行,如果窗口被关闭,activemq的进程自然就没了。启动完成后,会显示几条日志,如下图所示。通过查看61616端口和8161端口是否被activemq相关进程占用即可判断是否启动成功(61616端口是activemq的服务提供端口,可通过配置文件进行配置。8161是activemq的网管端口,可以通过http协议访问,用户名密码默认都是admin)。
        然后就是activemq的使用了,activemq支持使用多种语言编写它的客户端(消息生产者和消息消费者),如果使用java,则将activemq安装包中lib文件夹下的相关jar包导入到IntelliJ工程中就行了;如果使用C++需要在apache的网站上下载activemq-cpp-library-3.9.4-src.tar.gz。这里以java为例,初步学习,参考了网上的一些代码,写了写生产者和消费者最简单的代码。
生产者:
 
消费者:
        运行后就可以看到生产者发送出去的消息,消费者全都接收到了并且进行了消费。
        最后就是activemq的网管系统了。登录http://服务器IP:8161即可,初始界面如下所示:
        重点看Queues一栏把,Queues一栏如下所示:
        其中,Number Of Pending Messages表示进入到该队列的消息总数,Messages Enqueued表示现在还处在该队列中的消息的数量,Messages Dequeued表示从队列中出来的消息的数量。一旦activemq服务重启,所有数字均会清零,但是曾经创建的队列是不会清零的。
        还可以通过xml格式来看当前队列的相关信息,如下图:
        可以发现当前一共创建了两个消息队列,MyFirstQueue和MyFirstQueu。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建ActiveMQ 5.18集群,你需要按照以下步骤进行操作: 1. 下载ActiveMQ 5.18版本的压缩包,并解压到不同的文件夹中。 2. 配置主节点: - 进入第一个解压后的ActiveMQ文件夹,找到 `conf` 目录下的 `activemq.xml` 文件。 - 打开 `activemq.xml`,找到 `<broker>` 标签,并添加以下配置: ``` <broker xmlns="http://activemq.apache.org/schema/core" brokerName="master" useJmx="true" persistent="true"> <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter> <networkConnectors> <networkConnector uri="static:(tcp://localhost:61616)"/> </networkConnectors> </broker> ``` - 保存并关闭文件。 3. 配置从节点: - 进入第二个解压后的ActiveMQ文件夹,找到 `conf` 目录下的 `activemq.xml` 文件。 - 打开 `activemq.xml`,找到 `<broker>` 标签,并添加以下配置: ``` <broker xmlns="http://activemq.apache.org/schema/core" brokerName="slave" useJmx="true" persistent="true"> <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter> <networkConnectors> <networkConnector uri="static:(tcp://localhost:61616)"/> </networkConnectors> </broker> ``` - 保存并关闭文件。 4. 启动主节点: - 进入第一个解压后的ActiveMQ文件夹,执行 `bin/activemq start` 命令启动主节点。 5. 启动从节点: - 进入第二个解压后的ActiveMQ文件夹,执行 `bin/activemq start` 命令启动从节点。 6. 验证集群是否正常工作: - 打开浏览器,访问 `http://localhost:8161/admin`,进入ActiveMQ管理界面。 - 在管理界面上,可以看到主节点和从节点的连接状态,以及其他相关信息。 通过以上步骤,你就可以成功搭建ActiveMQ 5.18集群了。请注意,这只是一个简单的示例配置,实际部署时可能需要根据具体需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值