activemq的使用

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() {
			@Override
			public Message createMessage(Session session) throws JMSException {
				MapMessage mapMessage = session.createMapMessage();
				mapMessage.setString("telephone", model.getTelephone());
				mapMessage.setString("msg", msg);
				return mapMessage;
			}
		});









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值