我使用的是RabbitMQ Server 2.3.1。
一个频道有5-6个队列。
Queue由java bean组成。
并且有相同数量的scala actor正在使用特定队列。 所有这些参与者都试图通过公共队列管理器获取队列消息,该管理器处理rabbitmq连接和通道。
此队列管理器中只有一个连接和通道。
昨天我只对一个bean做了一些更改。
当我开始使用消息时,它给了我异常“本地类不兼容”。 我知道这个错误应该会出现,但事实是即使其他队列中存在混乱,其他参与者也会进入状态。
将4-5队列绑定到单个通道是一种好习惯。 或者,如果在一个Queue对象被强制转换为异常时,在具有4-5个队列绑定的通道中发生异常,这是一个错误。
任何人都可以帮我PLZ!答案 0 :(得分:1)
通道只是与RabbitMQ代理的多线程连接。所有队列使用者和消息发布者通常共享一个通道。不可理解的消息不应该导致频道出现任何问题。
您使用什么类型的交换?您发布到交换的邮件上有哪种路由密钥?将队列绑定到交换机时,您使用了哪些绑定密钥?
您是否考虑过在邮件标题中添加版本号,以便消息使用者知道期望哪个版本的java bean?然后,他们不需要在正常工作中提出例外。