等待状态,当在scala中的单个rabbitmq通道上绑定4-5个队列时

时间:2011-04-12 12:15:45

标签: scala concurrency rabbitmq

我使用的是RabbitMQ Server 2.3.1。

一个频道有5-6个队列。

Queue由java bean组成。

并且有相同数量的scala actor正在使用特定队列。 所有这些参与者都试图通过公共队列管理器获取队列消息,该管理器处理rabbitmq连接和通道。

此队列管理器中只有一个连接和通道。

昨天我只对一个bean做了一些更改。

当我开始使用消息时,它给了我异常“本地类不兼容”。 我知道这个错误应该会出现,但事实是即使其他队列中存在混乱,其他参与者也会进入状态。

将4-5队列绑定到单个通道是一种好习惯。 或者,如果在一个Queue对象被强制转换为异常时,在具有4-5个队列绑定的通道中发生异常,这是一个错误。

任何人都可以帮我PLZ!

1 个答案:

答案 0 :(得分:1)

通道只是与RabbitMQ代理的多线程连接。所有队列使用者和消息发布者通常共享一个通道。不可理解的消息不应该导致频道出现任何问题。

您使用什么类型的交换?您发布到交换的邮件上有哪种路由密钥?将队列绑定到交换机时,您使用了哪些绑定密钥?

您是否考虑过在邮件标题中添加版本号,以便消息使用者知道期望哪个版本的java bean?然后,他们不需要在正常工作中提出例外。