ActiveMQ之实现

PS:写了一半,忘记保存,没了……

周五部署了一套SPringMVC到自己的服务器上,之后原本想再部署一套Redis集群服务,结果redis一直编译报错,折腾到深夜两点多,第二天还有事,就暂时放弃了,周六周日又没在上海,一直没来的基整理博客,周日晚上七八点钟才回来,收拾一下就已经挺晚了,本来想第二天补上的,但是后边晚上还有事,再说承诺的是一周至少一篇的,想想还是写点吧!

====================分割线====================

切入正题:

以前曾经使用过得消息订阅系统有阿里的RocketMQ,以及Apache的kafka,唯独ActiveMQ没有使用过,所以这次部署一套ActiveMQ试试。

首先,第一步:

1 安装ActiveMQ

(1)、下载ActiveMQ,从官网下载:http://activemq.apache.org/activemq-5156-release.html

windows、Linux 自己看着办,我先在本地部署试试,所以下载的是win版的,

(2)、解压缩到给定目录,我放在了 D:\Tool 下面,之后进入/bin目录,看到有32位和64位两种选择,进入64win,管理员启动activemq.bat

(3)、启动成功后,浏览器打开http://127.0.0.1:8161/admin/,输入用户名、密码,默认都是admin,会显示如下界面:这就说明ActiveMQ启动成功

2、新建SpringMVC项目,部署到服务器上之后,可以通过页面访问,

(1)新建项目activemq,目录如下

(2)导入依赖

<!-- Spring JMS -->

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-jms</artifactId>

    <version>${spring.version}</version>

</dependency>

<!-- xbean 如<amq:connectionFactory /> -->

<dependency>

    <groupId>org.apache.xbean</groupId>

    <artifactId>xbean-spring</artifactId>

    <version>3.16</version>

</dependency>

<!-- ActiiveMQ -->

<dependency>

    <groupId>org.apache.activemq</groupId>

    <artifactId>activemq-core</artifactId>

    <version>5.7.0</version>

</dependency>

<dependency>

    <groupId>org.apache.activemq</groupId>

    <artifactId>activemq-pool</artifactId>

    <version>5.7.0</version>

</dependency>

(3)新建ActiveMQ.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:amq="http://activemq.apache.org/schema/core"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://activemq.apache.org/schema/core
        http://activemq.apache.org/schema/core/activemq-core-5.12.1.xsd">
        
    <!-- ActiveMQ 连接工厂 -->
    <amq:connectionFactory id="amqConnectionFactory"
                           brokerURL="tcp://localhost:61616"
                           userName="admin"
                           password="admin" />
                           
    <!-- 提高效率,配置JMS连接工厂 -->
    <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
        <constructor-arg ref="amqConnectionFactory" />
        <property name="sessionCacheSize" value="2000" />
    </bean>
    
    <!-- 定义消息队列(Queue)-->
   <!-- <bean id="QueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
        &lt;!&ndash; 设置消息队列的名字 &ndash;&gt;
        <constructor-arg value="Queue-gavin"/>
    </bean>-->
    <!--定义主题(Topic)-->
    <bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
        <constructor-arg value="Topic-gavin"/>
    </bean>
    
    <!-- 配置JMS模板(Queue),Spring提供的JMS工具类,利用它发送、接收消息。 -->
    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="connectionFactory" />
        <property name="defaultDestination" ref="topicDestination" />
        <property name="receiveTimeout" value="10000" />
        <!-- true是topic,false是queue,默认是false -->
        <property name="pubSubDomain" value="true" />
    </bean>
</beans>

 其中 brokerURL="tcp://localhost:61616" ,61616是ActiveMQ的默认请求端口

(4)创建生产者、消费者

(5)创建Action,生产者和消费者的请求入口

(6)差点忘了,applicationContext.xml 需要引入ActiveMQ.xml 文件,

即增加一行:<import resource="ActiveMQ.xml" />

3、运行

(1)使用tomcat容器,运行项目,得到初始页面

(2)请求http://localhost:8080/activemq/pro?cnt=5,cnt=5,就是说生产者生产了4条消息

(3)请求http://localhost:8080/activemq/con 即执行消费

此时我们可以从ActiveMQ控制台看到结果如下:

主题为:Topic-gavin的消息有4条,并且已全部消费;

这时我们再来看下程序后台输出的日志,

生产者日志如下:

消费者日志如下:

至此,ActiveMQ服务已经正常运行

现在只是在本地运行起来了,还没部署到服务器上,也没深入去研究他的收发机制,暂时先到这里了,

收工,睡觉!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值