activemq的使用

来源:互联网 发布:温州两家人 知乎 编辑:程序博客网 时间:2024/06/16 04:15

ActiveMQ 应用场景分析

1、 用户注册,重点用户信息数据库保存,发短信、发邮件,增加业务处理复杂度,这
         时候使用 MQ, 将发短信、发邮箱,通知 MQ,由另外服务平台完成
        2、 搜索平台、缓存平台
 查询数据,建立缓存、索引 ,不从数据库查询,从缓存或者索引库查询
 当增加、修改、删除数据时,发送消息给 MQ, 缓存平台、索引平台 从 MQ 获取

 到这个信息,更新缓存或者索引

ActiveMq的安装使用

官网下载    官网:http://activemq.apache.org/

解压 windows版本

进行 apache-activemq-5.14.0\bin\win64 目录 启动 activemq.bat 文

访问:http://localhost:8161/ 用户名和密码 都是 admin\


ActiveMQ 使用的是标准生产者和消费者模型
有两种数据结构 Queue、Topic
1、 Queue 队列 ,生产者生产了一个消息,只能由一个消费者进行消费
2、 Topic 话题,生产者生产了一个消息,可以由多个消费者进行消费


二 使用java程序操作ActiveMq

开发 activeMQ 只需要导入 activemq-all-5.14.0.jar
使用 maven 坐标导入

spring整合ActiceMq    
<dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>${spring.version}</version></dependency>
在spring中配置ActiceMq的连接工厂

    <bean id="amqConnectionFactory"     class="org.apache.activemq.ActiveMQConnectionFactory">    <property name="brokerURL" value="tcp://localhost:61616" />    <property name="userName" value="admin" />    <property name="password" value="admin" />    </bean>

配置spring mq的管理工厂

    <!-- Spring Caching连接工厂 -->    <!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory -->      <bean id="mqConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">        <!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory -->          <property name="targetConnectionFactory" ref="amqConnectionFactory"></property>        <!-- 同上,同理 -->        <!-- <constructor-arg ref="amqConnectionFactory" /> -->        <!-- Session缓存数量 -->        <property name="sessionCacheSize" value="100" />    </bean>         <!-- Spring JmsTemplate 的消息生产者 start-->    <!-- 定义JmsTemplate的Queue类型 -->    <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">        <!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->          <constructor-arg ref="mqConnectionFactory" />        <!-- 非pub/sub模型(发布/订阅),即队列模式 -->        <property name="pubSubDomain" value="false" />    </bean>    <!-- 定义JmsTemplate的Topic类型 -->    <bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate">         <!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->          <constructor-arg ref="mqConnectionFactory" />        <!-- pub/sub模型(发布/订阅) -->        <property name="pubSubDomain" value="true" />    </bean>


具体的代码实现
// 调用MQ服务,发送一条消息jmsTemplate.send("bos_sms", new MessageCreator() {@Overridepublic Message createMessage(Session session) throws JMSException {MapMessage mapMessage = session.createMapMessage();mapMessage.setString("telephone", model.getTelephone());mapMessage.setString("msg", msg);return mapMessage;}});









原创粉丝点击