Commit 2fea6064 by songxiang

RabbitMQ配置文件相关

parent 2f7df8de
/**
*
*/
package com.pcloud.common.core.constant;
/**
*
* @author:songx
* @date:2018年8月16日,下午9:54:51
*/
public class MQQueueConstant {
/**
* 模板消息
*/
public static final String TEMPLATE = "templateQueue";
/**
* 文件转码(PDF、OFFICE)
*/
public static final String TRANSCODE = "transcodeQueue";
/**
* 文件转码(音视频)
*/
public static final String CONVERT = "convertQueue";
/**
* 文件转码结束(音视频)->应用中心
*/
public static final String CONVERT_TO_APP = "convert2AppQueue";
/**
* 文件转码结束(音视频)->内容中心
*/
public static final String CONVERT_TO_CONTENT = "convert2ContentQueue";
/**
* 数据埋点
*/
public static final String FRONT_EVENT_QUEUE = "frontEventQueue";
/**
* 死信队列名称(勿改)
*/
public static final String DEAD = "rays.dlq";
}
/**
*
*/
package com.pcloud.common.core.constant;
/**
* RabbitMQ 交换机名称常量类
*
* @author:songx
* @date:2018年8月17日,上午10:48:18
*/
public class MQTopicProducer {
/**
* 应用新增
*/
public static final String APP_ADD = "topic.appAdd";
/**
* 文件转码结束(PDF、EXCEL)
*/
public static final String FILE_TRANSCODE = "topic.fileTranscode";
/**
* topic交换机名称(勿改)
*/
public static final String EXCHAGE = "rays.topic";
}
package com.pcloud.common.core.mq; package com.pcloud.common.core.mq;
import org.apache.activemq.command.ActiveMQQueue; import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.jms.connection.CachingConnectionFactory; import org.springframework.jms.connection.CachingConnectionFactory;
import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.JmsTemplate;
/** /**
* @描述: * @描述:
* *
* @作者:songx * @作者:songx
* @创建时间:2017年9月14日,上午11:40:25 @版本:1.0 * @创建时间:2017年9月14日,上午11:40:25 @版本:1.0
*/ */
@Configuration @Configuration
public class ActiveMqProducer { public class ActiveMqProducer {
@Autowired @Autowired
private CachingConnectionFactory cachingConnectionFactory; private CachingConnectionFactory cachingConnectionFactory;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("convertQueue") @Qualifier("convertQueue")
private ActiveMQQueue convertQueue; private ActiveMQQueue convertQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("labelUsedQueue") @Qualifier("labelUsedQueue")
private ActiveMQQueue labelUsedQueue; private ActiveMQQueue labelUsedQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("logQueue") @Qualifier("logQueue")
private ActiveMQQueue logQueue; private ActiveMQQueue logQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("messageQueue") @Qualifier("messageQueue")
private ActiveMQQueue messageQueue; private ActiveMQQueue messageQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("weektaskQueue") @Qualifier("weektaskQueue")
private ActiveMQQueue weektaskQueue; private ActiveMQQueue weektaskQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("templateQueue") @Qualifier("templateQueue")
private ActiveMQQueue templateQueue; private ActiveMQQueue templateQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("userActionQueue") @Qualifier("userActionQueue")
private ActiveMQQueue userActionQueue; private ActiveMQQueue userActionQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("funnelFlowQueue") @Qualifier("funnelFlowQueue")
private ActiveMQQueue funnelFlowQueue; private ActiveMQQueue funnelFlowQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("fundQueue") @Qualifier("fundQueue")
private ActiveMQQueue fundQueue; private ActiveMQQueue fundQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("dynamicQueue") @Qualifier("dynamicQueue")
private ActiveMQQueue dynamicQueue; private ActiveMQQueue dynamicQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("exapiQueue") @Qualifier("exapiQueue")
private ActiveMQQueue exapiQueue; private ActiveMQQueue exapiQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("frontEventQueue") @Qualifier("frontEventQueue")
private ActiveMQQueue frontEventQueue; private ActiveMQQueue frontEventQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("transcodeQueue") @Qualifier("transcodeQueue")
private ActiveMQQueue transcodeQueue; private ActiveMQQueue transcodeQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("promotionTaskQueue") @Qualifier("promotionTaskQueue")
private ActiveMQQueue promotionTaskQueue; private ActiveMQQueue promotionTaskQueue;
@Autowired(required = false) @Autowired(required = false)
@Qualifier("promotionTerminateQueue") @Qualifier("promotionTerminateQueue")
private ActiveMQQueue promotionTerminateQueue; private ActiveMQQueue promotionTerminateQueue;
/** /**
* 获取音视频转码JMS * 获取音视频转码JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsConvertTemplate") @Bean(name = "jmsConvertTemplate")
public JmsTemplate getConvertTemplate() { public JmsTemplate getConvertTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(convertQueue); jmsTemplate.setDefaultDestination(convertQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取标签使用JMS * 获取标签使用JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsLabelUsedTemplate") @Bean(name = "jmsLabelUsedTemplate")
public JmsTemplate getLabelUsedTemplate() { public JmsTemplate getLabelUsedTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(labelUsedQueue); jmsTemplate.setDefaultDestination(labelUsedQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取日志JMS * 获取日志JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsLogTemplate") @Bean(name = "jmsLogTemplate")
public JmsTemplate getLogTemplate() { public JmsTemplate getLogTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(logQueue); jmsTemplate.setDefaultDestination(logQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取消息JMS * 获取消息JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsMessageTemplate") @Bean(name = "jmsMessageTemplate")
public JmsTemplate getMessageTemplate() { public JmsTemplate getMessageTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(messageQueue); jmsTemplate.setDefaultDestination(messageQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取编辑任务JMS * 获取编辑任务JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsWeektaskTemplate") @Bean(name = "jmsWeektaskTemplate")
public JmsTemplate getWeektaskTemplate() { public JmsTemplate getWeektaskTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(weektaskQueue); jmsTemplate.setDefaultDestination(weektaskQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取模板消息JMS * 获取模板消息JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsTemplateTemplate") @Bean(name = "jmsTemplateTemplate")
public JmsTemplate getTemplateTemplate() { public JmsTemplate getTemplateTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(templateQueue); jmsTemplate.setDefaultDestination(templateQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取用户行为JMS * 获取用户行为JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsUserActionTemplate") @Bean(name = "jmsUserActionTemplate")
public JmsTemplate getUserActionTemplate() { public JmsTemplate getUserActionTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(userActionQueue); jmsTemplate.setDefaultDestination(userActionQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取漏斗流程JMS * 获取漏斗流程JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsFunnelFlowTemplate") @Bean(name = "jmsFunnelFlowTemplate")
public JmsTemplate getFunnelFlowTemplate() { public JmsTemplate getFunnelFlowTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(funnelFlowQueue); jmsTemplate.setDefaultDestination(funnelFlowQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 基金修改监控JMS * 基金修改监控JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsFundTemplate") @Bean(name = "jmsFundTemplate")
public JmsTemplate getJmsFundTemplate() { public JmsTemplate getJmsFundTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(fundQueue); jmsTemplate.setDefaultDestination(fundQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 作者动态监控JMS * 作者动态监控JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsDynamicTemplate") @Bean(name = "jmsDynamicTemplate")
public JmsTemplate getJmsDynamicTemplate() { public JmsTemplate getJmsDynamicTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(dynamicQueue); jmsTemplate.setDefaultDestination(dynamicQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 收集事件 * 收集事件
* *
* @return * @return
*/ */
@Bean(name = "jmsFrontEventTemplate") @Bean(name = "jmsFrontEventTemplate")
public JmsTemplate getJmsFrontEventTemplate() { public JmsTemplate getJmsFrontEventTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(frontEventQueue); jmsTemplate.setDefaultDestination(frontEventQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 对外api监控JMS * 对外api监控JMS
* *
* @author wangrui * @author wangrui
* @date 10:40 2018/4/13 * @date 10:40 2018/4/13
*/ */
@Bean(name = "jmsExapiTemplate") @Bean(name = "jmsExapiTemplate")
public JmsTemplate getJmsExapiTemplate() { public JmsTemplate getJmsExapiTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(exapiQueue); jmsTemplate.setDefaultDestination(exapiQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 文件转码JMS * 文件转码JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsTranscodeTemplate") @Bean(name = "jmsTranscodeTemplate")
public JmsTemplate getJmsTranscodeTemplate() { public JmsTemplate getJmsTranscodeTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(transcodeQueue); jmsTemplate.setDefaultDestination(transcodeQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取促销任务JMS * 获取促销任务JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsPromotionTaskTemplate") @Bean(name = "jmsPromotionTaskTemplate")
public JmsTemplate getJmsPromotionTaskTemplate() { public JmsTemplate getJmsPromotionTaskTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(promotionTaskQueue); jmsTemplate.setDefaultDestination(promotionTaskQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取促销终止JMS * 获取促销终止JMS
* *
* @return * @return
*/ */
@Bean(name = "jmsPromotionTerminateTemplate") @Bean(name = "jmsPromotionTerminateTemplate")
public JmsTemplate getJmsPromotionTerminateTemplate() { public JmsTemplate getJmsPromotionTerminateTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate(); JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(promotionTerminateQueue); jmsTemplate.setDefaultDestination(promotionTerminateQueue);
return jmsTemplate; return jmsTemplate;
} }
/** /**
* 获取JMS模板 * 获取JMS模板
* *
* @return * @return
*/ */
private JmsTemplate getJmsTemplate() { private JmsTemplate getJmsTemplate() {
JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory); JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory);
jmsTemplate.setReceiveTimeout(10000); jmsTemplate.setReceiveTimeout(10000);
return jmsTemplate; return jmsTemplate;
} }
} }
\ No newline at end of file
package com.pcloud.common.core.mq;
import java.util.HashMap;
import java.util.Map;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.QueueBuilder;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.pcloud.common.core.constant.MQQueueConstant;
import com.pcloud.common.core.constant.MQTopicProducer;
/**
* RabbitMQ
*
* @author:songx
* @date:2018年8月16日,上午11:22:49
*/
@Configuration
public class RabbitMQFactory {
private static final String DEAD_LETTER_EXCHANGE = "rays.dlx";
private static final String DEAD_ROUTING_KEY = "rays.dlk";
private static TopicExchange topicExchange = null;
/**
* 声明业务队列同时与死信队列绑定,当业务队列的消息失败时会转发到死信队列中在进行处理,防止信息丢失
*
* @param queueName
* 队列名称
* @return
*/
public static Queue queueBuilder(String queueName) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("x-dead-letter-exchange", DEAD_LETTER_EXCHANGE);// 设置死信交换机
map.put("x-dead-letter-routing-key", DEAD_ROUTING_KEY);// 设置死信routingKey
return QueueBuilder.durable(queueName).withArguments(map).build();
}
@Bean
public Queue deadQueue() {
return new Queue(MQQueueConstant.DEAD);
}
@Bean
public DirectExchange deadLetterExchange() {
return new DirectExchange(DEAD_LETTER_EXCHANGE, true, false);
}
@Bean
public Binding deadBinding() {
return BindingBuilder.bind(deadQueue()).to(deadLetterExchange()).with(DEAD_ROUTING_KEY);
}
/**
* Topic模式下生产者与消费者到交换机的绑定
*
* @param queue
* 消费者队列
* @param producer
* 生产者名称
* @return
*/
public static Binding bindingExchange(Queue queue, String producer) {
return BindingBuilder.bind(queue).to(getTopicExchange()).with(producer);
}
@Bean
TopicExchange topicExchange() {
return getTopicExchange();
}
/**
*
* @return
*/
private static TopicExchange getTopicExchange() {
if (topicExchange == null) {
topicExchange = new TopicExchange(MQTopicProducer.EXCHAGE);
}
return topicExchange;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment