`
Fkron
  • 浏览: 14057 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于断开 Rabbit MQ 连接的问题

阅读更多
while (falg)
            {
                debuglogger.info("find msg of: " + acid);
                QueueingConsumer.Delivery delivery = consumer.nextDelivery();
                String text = new String(delivery.getBody());
                
                // 解析消息
                String from = "";
                String to = "";
              。。。。。。。。
              }


当我试着去关闭 channel 通道的时候。。报以下错误:
     com.rabbitmq.client.ShutdownSignalException: clean channel shutdown; reason: #method<channel.close>(reply-code=200, reply-text=OK, class-id=0, method-id=0)
	at com.rabbitmq.client.QueueingConsumer.handle(QueueingConsumer.java:198)
	at com.rabbitmq.client.QueueingConsumer.nextDelivery(QueueingConsumer.java:214)
	at com.handbb.dating.mq.MQMsgMrg.recmsg(MQMsgMrg.java:251)
	at com.handbb.dating.action.UserAction$1.run(UserAction.java:156)
Caused by: com.rabbitmq.client.ShutdownSignalException: clean channel shutdown; reason: #method<channel.close>(reply-code=200, reply-text=OK, class-id=0, method-id=0)
	at com.rabbitmq.client.impl.ChannelN.close(ChannelN.java:521)
	at com.rabbitmq.client.impl.ChannelN.close(ChannelN.java:480)
	at com.rabbitmq.client.impl.ChannelN.close(ChannelN.java:473)
	at com.handbb.dating.mq.MQMsgMrg.closeMq(MQMsgMrg.java:519)
	at com.handbb.dating.action.UserAction.userlogout(UserAction.java:194)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)




原因可能能为我还在不停的从队列中去接受消息,现在去关闭channel的时候。发生异常。。


现在问题是。我要怎么去合理的关闭channel,不会发生异常,或者理解为。怎么样去更好的接受消息??

求好心人指点。。谢谢。。。
分享到:
评论

相关推荐

    c# RabbitMQ封装类,连接发送接收解析都支持

    c# RabbitMQ封装类,连接发送接收解析都支持

    详解Node.js amqplib 连接 Rabbit MQ最佳实践

    通常,如果无需长期保留队列,建议设置`autoDelete`为`true`,这样当最后一个消费者断开连接后,队列会自动删除。同时,`durable`属性用于指定队列是否应持久化,若非必要,不推荐使用,因为它会增加磁盘使用和恢复...

    RabbitMQ封装为c++版本,并且使用方式为发布订阅模式

    这个库提供了与RabbitMQ服务器交互的接口,包括连接、断开连接、声明交换器、队列、绑定等操作。封装这个库通常涉及以下步骤: 1. **建立连接**:使用`rabbitmq_c`库中的`amqp_new_connection`函数创建一个新的连接...

    vue 中如何使用rabbitMQ 监听消息队列

    在实际开发中,你可能还需要考虑错误处理、连接断开后的重连机制、以及更复杂的频道订阅和消息处理策略。通过这种方式,Vue应用可以实时响应RabbitMQ消息队列中的事件,提高系统的实时性和可扩展性。

    RabbitMQ工具类封装实现

    2. **连接恢复**:当连接断开时,可以实现自动重连功能,确保服务的连续性。 最后,`RabbitMQ_demo.zip`是一个Android应用示例,展示了如何在Android环境中使用封装好的RabbitMQ工具类。在Android中使用RabbitMQ...

    通过WebSocket实现RabbitMQ的发送数据实时显示

    6. **错误处理与断线重连**:确保在WebSocket连接断开时有适当的恢复机制,如重试连接或通知用户。 在实际开发中,还需要考虑安全性、性能优化、错误处理等细节。例如,使用HTTPS保证WebSocket连接的安全,限制并发...

    RabbitMQ接口文件

    6. 在完成消息处理后,记得断开连接并清理资源。 通过这个封装,你可以更高效地利用RabbitMQ,减少直接与AMQP协议打交道的复杂性,提高开发效率。但请注意,使用过程中还需要关注RabbitMQ的配置、权限控制、消息...

    RabbitMQ 45 道面试题及答案.docx

    1. 如果消费者接收到消息,在确认之前断开了连接或取消订阅,RabbitMQ 会认为消息没有被分发,然后重新分发给下一个订阅的消费者。 2. 如果消费者接收到消息却没有确认消息,连接也未断开,则 RabbitMQ 认为该消费者...

    RabbitMQ.zip

    1. 连接和断开RabbitMQ服务器。 2. 创建、删除交换机和队列。 3. 发布和消费消息。 4. 配置各种类型的交换机(如Direct、Fanout、Topic、Header)。 5. 设置消息持久化,确保在服务器重启后仍能恢复消息。 6. 处理...

Global site tag (gtag.js) - Google Analytics