package com.matrix.component.rabbitmq;
|
|
import com.matrix.core.tools.LogUtil;
|
import com.rabbitmq.client.Connection;
|
import com.rabbitmq.client.ConnectionFactory;
|
|
import java.io.IOException;
|
import java.util.concurrent.TimeoutException;
|
|
/**
|
* mq消息模板工程
|
*
|
* @Author jyy
|
*/
|
public class RabiitMqTemplateFactory {
|
|
private static RabiitMqTemplate rabiitMqTemplate = null;
|
|
/**
|
* 构建mq消息模板,mq模板是单例的
|
*
|
* @param host
|
* @param port
|
* @param username
|
* @param password
|
* @return
|
*/
|
public static RabiitMqTemplate buildTemplate(String host, int port, String username, String password) {
|
|
if (rabiitMqTemplate == null) {
|
ConnectionFactory factory = new ConnectionFactory();
|
factory.setHost(host);
|
factory.setPort(port);
|
factory.setUsername(username);
|
factory.setPassword(password);
|
/**
|
* 网络故障自动连接恢复
|
*/
|
factory.setAutomaticRecoveryEnabled(true);
|
Connection connection = null;
|
try {
|
connection = factory.newConnection();
|
} catch (IOException | TimeoutException e) {
|
LogUtil.error("RabiitMqTemplate初始化失败" + e.getMessage(), e);
|
}
|
rabiitMqTemplate = new RabiitMqTemplate(connection);
|
}
|
return rabiitMqTemplate;
|
}
|
}
|