瀏覽代碼

rabbitmq数据源和系统消息分开

wangli 4 年之前
父節點
當前提交
c556d969ec

+ 197 - 0
sms_water/src/main/java/com/huaxu/config/RabbitConfig.java

@@ -0,0 +1,197 @@
+package com.huaxu.config;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.amqp.core.*;
+import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
+import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
+import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+import org.springframework.amqp.rabbit.core.RabbitAdmin;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.annotation.Scope;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ Broker:它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指定的方式进行传输,
+ Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
+ Queue:消息的载体,每个消息都会被投到一个或多个队列。
+ Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来.
+ Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
+ vhost:虚拟主机,一个broker里可以有多个vhost,用作不同用户的权限分离。
+ Producer:消息生产者,就是投递消息的程序.
+ Consumer:消息消费者,就是接受消息的程序.
+ Channel:消息通道,在客户端的每个连接里,可建立多个channel.
+ */
+@Configuration
+public class RabbitConfig {
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Value("${message.spring.rabbitmq.host}")
+    private String messageHost;
+    @Value("${message.spring.rabbitmq.port}")
+    private int messagePort;
+    @Value("${message.spring.rabbitmq.username}")
+    private String messagePsername;
+    @Value("${message.spring.rabbitmq.password}")
+    private String messagePassword;
+    @Value("${message.spring.rabbitmq.virtual-host}")
+    private String messageVirtualHost;
+
+    @Value("${message.spring.rabbitmq.requested-heartbeat}")
+    private int messageRequestedHeartbeat;
+    @Value("${message.spring.rabbitmq.connection-timeout}")
+    private int messageConnectionTimeout;
+//    @Value("${message.spring.rabbitmq.publisher-confirm-type}")
+//    private CachingConnectionFactory.ConfirmType messagePublisherConfirms;
+
+    @Value("${message.spring.rabbitmq.publisher-confirms}")
+    private Boolean messagePublisherConfirms;
+    @Value("${message.spring.rabbitmq.publisher-returns}")
+    private Boolean messagePublisherReturns;
+
+    @Value("${message.spring.rabbitmq.listener.simple.acknowledge-mode}")
+    private AcknowledgeMode messageAcknowledgeMode;
+    @Value("${message.spring.rabbitmq.listener.simple.prefetch}")
+    private int messagePrefetch;
+
+    @Value("${receive.exchange.name}")
+    private  String receiveExchangeName;
+    @Value("${dispath.routing.key}")
+    private  String dispathRoutingKey;
+    @Value("${dispath.queue}")
+    private  String dispathQueue;
+
+    @Bean
+    @Primary
+    public ConnectionFactory MessageconnectionFactory() {
+        CachingConnectionFactory connectionFactory = new CachingConnectionFactory(messageHost,messagePort);
+        connectionFactory.setUsername(messagePsername);
+        connectionFactory.setPassword(messagePassword);
+        connectionFactory.setVirtualHost(messageVirtualHost);
+        connectionFactory.setRequestedHeartBeat(messageRequestedHeartbeat);
+        connectionFactory.setConnectionTimeout(messageConnectionTimeout);
+//        connectionFactory.
+//        connectionFactory.setPublisherConfirmType(messagePublisherConfirms);
+        connectionFactory.setPublisherConfirms(messagePublisherConfirms);
+        connectionFactory.setPublisherReturns(messagePublisherReturns);
+        return connectionFactory;
+    }
+
+    @Bean(name = "messageRabbitTemplate")
+    @Primary
+    public RabbitTemplate MessageRabbitTemplate() {
+        RabbitTemplate template = new RabbitTemplate(MessageconnectionFactory());
+        return template;
+    }
+
+    //配置消费者监听的容器
+    @Bean(name = "messageContainerFactory")
+    @Primary
+    public SimpleRabbitListenerContainerFactory MessageRabbitListenerContainerFactory() {
+        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
+        factory.setConnectionFactory(MessageconnectionFactory());
+//        factory.setConcurrentConsumers(3);
+//        factory.setMaxConcurrentConsumers(10);
+        factory.setPrefetchCount(messagePrefetch);
+        factory.setAcknowledgeMode(messageAcknowledgeMode);//设置确认模式
+        return factory;
+    }
+    
+    @Bean(name = "messageRabbitAdmin")
+    @Primary
+    public RabbitAdmin RabbitAdmin() {
+        RabbitAdmin rabbitAdmin = new RabbitAdmin(MessageconnectionFactory());
+        rabbitAdmin.setAutoStartup(true);
+//        Map<String, Object> args = new HashMap<>();
+//        args.put("x-queue-type", "classic");
+        rabbitAdmin.declareQueue(QueueBuilder.nonDurable(dispathQueue).build());
+        rabbitAdmin.declareExchange(new TopicExchange(receiveExchangeName, false, false, null));
+        rabbitAdmin.declareBinding(
+                BindingBuilder
+                        .bind(QueueBuilder.nonDurable(dispathQueue).build())        //队列
+                        .to(new TopicExchange(receiveExchangeName, false, false, null))    //直接创建交换机 建立关联关系
+                        .with(dispathRoutingKey));    //指定路由Key
+    return rabbitAdmin;
+    }
+
+
+
+    @Value("${receiveData.spring.rabbitmq.host}")
+    private String dataHost;
+    @Value("${receiveData.spring.rabbitmq.port}")
+    private int dataPort;
+    @Value("${receiveData.spring.rabbitmq.username}")
+    private String dataUsername;
+    @Value("${receiveData.spring.rabbitmq.password}")
+    private String dataPassword;
+    @Value("${receiveData.spring.rabbitmq.virtual-host}")
+    private String dataVirtualHost;
+
+    @Value("${receiveData.spring.rabbitmq.requested-heartbeat}")
+    private int dataRequestedHeartbeat;
+    @Value("${receiveData.spring.rabbitmq.connection-timeout}")
+    private int dataConnectionTimeout;
+//    @Value("${receiveData.spring.rabbitmq.publisher-confirm-type}")
+//    private CachingConnectionFactory.ConfirmType dataPublisherConfirms;
+
+    @Value("${receiveData.spring.rabbitmq.publisher-confirms}")
+    private Boolean dataPublisherConfirms;
+
+    @Value("${receiveData.spring.rabbitmq.publisher-returns}")
+    private Boolean dataPublisherReturns;
+
+    @Value("${receiveData.spring.rabbitmq.listener.simple.acknowledge-mode}")
+    private AcknowledgeMode dataAcknowledgeMode;
+    @Value("${receiveData.spring.rabbitmq.listener.simple.prefetch}")
+    private int dataPrefetch;
+
+    @Bean
+    public ConnectionFactory ReceiveDataconnectionFactory() {
+        CachingConnectionFactory connectionFactory = new CachingConnectionFactory(messageHost,messagePort);
+        connectionFactory.setUsername(messagePsername);
+        connectionFactory.setPassword(messagePassword);
+        connectionFactory.setVirtualHost(dataVirtualHost);
+        connectionFactory.setRequestedHeartBeat(dataRequestedHeartbeat);
+        connectionFactory.setConnectionTimeout(dataConnectionTimeout);
+//        connectionFactory.setPublisherConfirmType(dataPublisherConfirms);
+            connectionFactory.setPublisherConfirms(dataPublisherConfirms);
+        connectionFactory.setPublisherReturns(dataPublisherReturns);
+        return connectionFactory;
+    }
+
+    @Bean(name = "receiveDataRabbitTemplate")
+    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+    //必须是prototype类型
+    public RabbitTemplate ReceiveDatarabbitTemplate() {
+        RabbitTemplate template = new RabbitTemplate(ReceiveDataconnectionFactory());
+        return template;
+    }
+
+    //配置消费者监听的容器
+    @Bean(name = "receiveDataContainerFactory")
+    public SimpleRabbitListenerContainerFactory ReceiveDatarabbitListenerContainerFactory() {
+        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
+        factory.setConnectionFactory(ReceiveDataconnectionFactory());
+//        factory.setConcurrentConsumers(3);
+//        factory.setMaxConcurrentConsumers(10);
+        factory.setPrefetchCount(dataPrefetch);
+        factory.setAcknowledgeMode(dataAcknowledgeMode);//设置确认模式手工确认
+        return factory;
+    }
+
+
+
+
+
+
+
+
+}

+ 21 - 9
sms_water/src/main/java/com/huaxu/rabbitmq/ReceiveData.java

@@ -19,7 +19,6 @@ import com.huaxu.entity.Message;
 import com.huaxu.entity.MonitorDataEntity;
 import com.huaxu.entity.MonitorDataValueEntity;
 import com.huaxu.service.MonitorDataService;
-import com.huaxu.util.MessageSendUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.springframework.amqp.core.AmqpTemplate;
@@ -41,18 +40,19 @@ import java.util.stream.Collectors;
 public class ReceiveData {
 
 
-    @Autowired
-    private AmqpTemplate rabbitTemplate;
+    @Resource(name = "messageRabbitTemplate")
+    private AmqpTemplate messageRabbitTemplate;
+
+    @Resource(name = "receiveDataRabbitTemplate")
+    private AmqpTemplate receiveDataRabbitTemplate;
 
     @Resource
     private AlarmDetailMapper alarmDetailMapper;
 
     @Autowired
     private UserCenterClient userCenterClient;
-    @Autowired
-    private MessageSendUtil messageSendUtil;
 
-    @Value("${spring.rabbitmq.listener.queue}")
+    @Value("${receiveData.spring.rabbitmq.listener.queue}")
     private   String rabbitmqQueue;
 
     @Autowired
@@ -69,8 +69,19 @@ public class ReceiveData {
         return rabbitmqQueue;
     }
 
+    @Value("${receive.exchange.name}")
+    private  String receiveExchangeName;
+    @Value("${dispath.routing.key}")
+    private  String dispathRoutingKey;
+
+
+    private void send(Message message){
+        log.info("消息发送 exchange={}  routingkey={} 用户id={}",receiveExchangeName,dispathRoutingKey,message.getUserId());
+        messageRabbitTemplate.convertAndSend(receiveExchangeName,dispathRoutingKey, JSONObject.toJSONString(message));
+    }
+
     @RabbitHandler
-    @RabbitListener(queues = "#{rabbitmqQueue}")
+    @RabbitListener(queues = "#{rabbitmqQueue}",containerFactory = "receiveDataContainerFactory")
     public void received(byte[] receivedData) {
 
         try {
@@ -79,7 +90,7 @@ public class ReceiveData {
         } catch (Exception e) {
             log.error(ExceptionUtils.getStackTrace(e));
             // 发送异常时消息返回队列
-            rabbitTemplate.convertAndSend(rabbitmqQueue, receivedData);
+            receiveDataRabbitTemplate.convertAndSend(rabbitmqQueue, receivedData);
         }
 
     }
@@ -219,12 +230,13 @@ public class ReceiveData {
                            message.setChannel(0);   //渠道
                            Integer companyOrgId = deviceCheckAlarmDto.getCompanyOrgId();
                            Integer departmentOrgId = deviceCheckAlarmDto.getDeptOrgId();
+                           log.info("推送报警消息开始");
                            try{
                                List<Integer> taskUsers = userCenterClient.findUserIdsByPermissonOrg(deviceCheckAlarmDto.getTenantId(),companyOrgId,departmentOrgId);
                                if(taskUsers!=null){
                                    taskUsers.forEach(id->{
                                        message.setUserId(id);
-                                       messageSendUtil.send(message);
+                                       this.send(message);
                                    });
                                }
                            }catch(Exception e){

+ 18 - 4
sms_water/src/main/java/com/huaxu/service/impl/AlarmDetailsServiceImpl.java

@@ -15,7 +15,9 @@ import com.huaxu.util.MessageSendUtil;
 import com.huaxu.util.UserUtil;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.amqp.core.AmqpTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -38,8 +40,20 @@ public class AlarmDetailsServiceImpl implements AlarmDetailsService {
     private OperationManagerClient operationManagerClient;
     @Autowired
     private UserCenterClient userCenterClient;
-    @Autowired
-    private MessageSendUtil messageSendUtil;
+
+    @Resource(name = "messageRabbitTemplate")
+    private AmqpTemplate messageRabbitTemplate;
+
+    @Value("${receive.exchange.name}")
+    private  String receiveExchangeName;
+    @Value("${dispath.routing.key}")
+    private  String dispathRoutingKey;
+
+
+    private void send(Message message){
+        log.info("消息发送 exchange={}  routingkey={} 用户id={}",receiveExchangeName,dispathRoutingKey,message.getUserId());
+        messageRabbitTemplate.convertAndSend(receiveExchangeName,dispathRoutingKey, JSONObject.toJSONString(message));
+    }
 
     @Override
     public AlarmDetailsDto selectById(Integer id) {
@@ -215,7 +229,7 @@ public class AlarmDetailsServiceImpl implements AlarmDetailsService {
                         if(taskUsers!=null){
                             taskUsers.forEach(id->{
                                 message.setUserId(id);
-                                messageSendUtil.send(message);
+                                this.send(message);
                             });
                         }
                     }catch(Exception e){
@@ -327,7 +341,7 @@ public class AlarmDetailsServiceImpl implements AlarmDetailsService {
                    if(taskUsers!=null){
                        taskUsers.forEach(id->{
                            message.setUserId(id);
-                           messageSendUtil.send(message);
+                           this.send(message);
                        });
                    }
                    workOrderManageByAlarms.add(workOrderManageByAlarm);

+ 43 - 28
sms_water/src/main/resources/application-dev.properties

@@ -73,29 +73,7 @@ spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
 SMS.sys_config_path=/UMIS_SMS_IMAGES/
 SMS.sys_excel_path=/UMIS_SMS_EXCEL/
 
-#请求处理的超时时间
-ribbon.ReadTimeout: 30000
-#请求连接的超时时间
-ribbon.ConnectTimeout: 30000
 
-##rabbitmq
-spring.rabbitmq.host=114.135.61.188
-spring.rabbitmq.port=55672
-#spring.rabbitmq.host=47.112.217.10
-#spring.rabbitmq.port=5672
-spring.rabbitmq.username=huaxu
-spring.rabbitmq.password=huaxu123
-spring.rabbitmq.virtual-host=/
-spring.rabbitmq.listener.queue=new_hx_queue
-spring.rabbitmq.listener.simple.acknowledge-mode = NONE
-
-#spring.rabbitmq.host=127.0.0.1
-#spring.rabbitmq.port=5672
-#spring.rabbitmq.username=guest
-#spring.rabbitmq.password=guest
-#spring.rabbitmq.virtual-host=/
-#spring.rabbitmq.listener.queue=new_test_queues
-#spring.rabbitmq.listener.simple.acknowledge-mode = NONE
 
 
 #http
@@ -128,13 +106,50 @@ spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThre
 spring.quartz.properties.org.quartz.threadPool.threadCount=10
 spring.quartz.properties.org.quartz.threadPool.threadPriority=5
 spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
+
+
+
+
+
+# 设置 feign 客户端超时时间(OpenFeign 默认支持 ribbon)
+# 值的是建立连接所用的时间,使用与网络状态正常的情况,两端连接所用的时间
+ribbon.ReadTimeout=5000
+# 指的是建立连接后从服务器读取到可用资源所用的时间
+ribbon.ConnectionTimeout=5000
+
+##rabbitmq
+message.spring.rabbitmq.host=127.0.0.1
+message.spring.rabbitmq.port=5672
+message.spring.rabbitmq.username=guest
+message.spring.rabbitmq.password=guest
+message.spring.rabbitmq.virtual-host= /
+message.spring.rabbitmq.requested-heartbeat = 10
+message.spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+message.spring.rabbitmq.listener.simple.prefetch = 20
+message.spring.rabbitmq.connection-timeout=15000
+message.spring.rabbitmq.publisher-confirm-type=correlated
+message.spring.rabbitmq.publisher-returns=true
+
+dispath.queue=dispath
 receive.exchange.name=messageExchange
 dispath.routing.key=dipathKey
 
-#rabbit
 
-spring.rabbitmq.connection-timeout=15000
-spring.rabbitmq.publisher-confirm-type=correlated
-spring.rabbitmq.publisher-returns=true
-spring.rabbitmq.template.mandatory=true
-dispath.queue=dispath
+
+
+receiveData.spring.rabbitmq.host=127.0.0.1
+receiveData.spring.rabbitmq.port=5672
+receiveData.spring.rabbitmq.username=guest
+receiveData.spring.rabbitmq.password=guest
+receiveData.spring.rabbitmq.virtual-host=/
+receiveData.spring.rabbitmq.listener.queue=new_test_queues
+receiveData.spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+receiveData.spring.rabbitmq.listener.simple.prefetch = 20
+
+receiveData.spring.rabbitmq.requested-heartbeat = 10
+receiveData.spring.rabbitmq.connection-timeout=15000
+receiveData.spring.rabbitmq.publisher-confirm-type=correlated
+receiveData.spring.rabbitmq.publisher-confirms=true
+receiveData.spring.rabbitmq.publisher-returns=true
+
+

+ 41 - 12
sms_water/src/main/resources/application-prd.properties

@@ -74,16 +74,7 @@ spring.cloud.nacos.discovery.server-addr=10.0.0.136:8848
 SMS.sys_config_path=/UMIS_SMS_IMAGES/
 SMS.sys_excel_path=/UMIS_SMS_EXCEL/
 
-##rabbitmq
-#spring.rabbitmq.host=114.135.61.188
-#spring.rabbitmq.port=55672
-spring.rabbitmq.host=47.112.217.10
-spring.rabbitmq.port=5672
-spring.rabbitmq.username=huaxu
-spring.rabbitmq.password=huaxu123
-spring.rabbitmq.virtual-host=/
-spring.rabbitmq.listener.queue=new_hx_queue
-spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+
 #http
 http_pool.max_total=200
 http_pool.default_max_per_route=100
@@ -115,5 +106,43 @@ spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThre
 spring.quartz.properties.org.quartz.threadPool.threadCount=10
 spring.quartz.properties.org.quartz.threadPool.threadPriority=5
 spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
-receive.exchange.name=messageExchangeTest
-dispath.routing.key=dipathKeyTest
+
+
+##rabbitmq
+message.spring.rabbitmq.host=114.135.61.188
+message.spring.rabbitmq.port=55672
+message.spring.rabbitmq.username=zoniot
+message.spring.rabbitmq.password=zcxk100
+message.spring.rabbitmq.virtual-host= /
+message.spring.rabbitmq.requested-heartbeat = 10
+message.spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+message.spring.rabbitmq.listener.simple.prefetch = 20
+message.spring.rabbitmq.connection-timeout=15000
+message.spring.rabbitmq.publisher-confirm-type=correlated
+message.spring.rabbitmq.publisher-confirms=true
+message.spring.rabbitmq.publisher-returns=true
+
+dispath.queue=dispath
+receive.exchange.name=messageExchange
+dispath.routing.key=dipathKey
+
+
+
+
+receiveData.spring.rabbitmq.host=47.112.217.10
+receiveData.spring.rabbitmq.port=5672
+receiveData.spring.rabbitmq.username=huaxu
+receiveData.spring.rabbitmq.password=huaxu123
+receiveData.spring.rabbitmq.virtual-host=/
+receiveData.spring.rabbitmq.listener.queue=new_hx_queue
+receiveData.spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+receiveData.spring.rabbitmq.listener.simple.prefetch = 20
+
+receiveData.spring.rabbitmq.requested-heartbeat = 10
+receiveData.spring.rabbitmq.connection-timeout=15000
+receiveData.spring.rabbitmq.publisher-confirm-type=correlated
+receiveData.spring.rabbitmq.publisher-confirms=true
+receiveData.spring.rabbitmq.publisher-returns=true
+
+
+

+ 42 - 9
sms_water/src/main/resources/application-sit.properties

@@ -77,13 +77,13 @@ SMS.sys_excel_path=/UMIS_SMS_EXCEL/
 ##rabbitmq
 #spring.rabbitmq.host=114.135.61.188
 #spring.rabbitmq.port=55672
-spring.rabbitmq.host=47.112.217.10
-spring.rabbitmq.port=5672
-spring.rabbitmq.username=huaxu
-spring.rabbitmq.password=huaxu123
-spring.rabbitmq.virtual-host=/
-spring.rabbitmq.listener.queue=new_hx_queue
-spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+#spring.rabbitmq.host=47.112.217.10
+#spring.rabbitmq.port=5672
+#spring.rabbitmq.username=huaxu
+#spring.rabbitmq.password=huaxu123
+#spring.rabbitmq.virtual-host=/
+#spring.rabbitmq.listener.queue=new_hx_queue
+#spring.rabbitmq.listener.simple.acknowledge-mode = NONE
 #http
 http_pool.max_total=200
 http_pool.default_max_per_route=100
@@ -115,6 +115,39 @@ spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThre
 spring.quartz.properties.org.quartz.threadPool.threadCount=10
 spring.quartz.properties.org.quartz.threadPool.threadPriority=5
 spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
-receive.exchange.name=messageExchangeTest
-dispath.routing.key=dipathKeyTest1
+
+
+##rabbitmq 报警消息和工单消息数据
+message.spring.rabbitmq.host=114.135.61.188
+message.spring.rabbitmq.port=55672
+message.spring.rabbitmq.username=zoniot
+message.spring.rabbitmq.password=zcxk100
+message.spring.rabbitmq.virtual-host= /
+message.spring.rabbitmq.requested-heartbeat = 10
+message.spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+message.spring.rabbitmq.listener.simple.prefetch = 20
+message.spring.rabbitmq.connection-timeout=15000
+message.spring.rabbitmq.publisher-confirm-type=correlated
+message.spring.rabbitmq.publisher-confirms=true
+message.spring.rabbitmq.publisher-returns=true
+dispath.queue=dispath1
+receive.exchange.name=messageExchange
+dispath.routing.key=dipathKey1
+
+#设备数据采集
+receiveData.spring.rabbitmq.host=47.112.217.10
+receiveData.spring.rabbitmq.port=5672
+receiveData.spring.rabbitmq.username=huaxu
+receiveData.spring.rabbitmq.password=huaxu123
+receiveData.spring.rabbitmq.virtual-host=/
+receiveData.spring.rabbitmq.listener.queue=new_hx_queue
+receiveData.spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+receiveData.spring.rabbitmq.listener.simple.prefetch = 20
+
+receiveData.spring.rabbitmq.requested-heartbeat = 10
+receiveData.spring.rabbitmq.connection-timeout=15000
+receiveData.spring.rabbitmq.publisher-confirm-type=correlated
+receiveData.spring.rabbitmq.publisher-confirms=true
+receiveData.spring.rabbitmq.publisher-returns=true
+