【问题标题】:How does RabbitMQ WCF tolerate service failures?RabbitMQ WCF 如何容忍服务失败?
【发布时间】:2015-05-10 18:25:01
【问题描述】:

假设我有一个使用 RabbitMQ WCF 接口/绑定绑定/公开的 WCF 服务。如果我有客户端通过 RabbitMQ WCF 接口调用我的服务,那么假设服务出现故障会发生什么?

  1. RabbitMQ 是否会仅将请求存储到该服务,一旦服务启动,它会将这些请求传递给该服务?
  2. 客户端会收到“未找到服务”消息还是某种“服务已断开”消息?
  3. 如何在 RabbitMQ 中实现 WCF 连接? RabbitMQ 是否会在 WCF 服务请求所在的位置保留一个队列,如果服务出现故障,那么队列会继续增长,直到服务重新上线?

【问题讨论】:

  • 这主要取决于您如何在本地配置 RabbitMQ。如果队列不是持久的,服务崩溃可能意味着所有未传递的消息都将丢失。
  • @Peter,这听起来很奇怪。如果 RabbitMQ 还活着,那么不需要使消息持久化——它们应该被存储直到被消费。

标签: c# .net wcf rabbitmq


【解决方案1】:

通过对 WCF API 的一些试验,它看起来不像客户端和服务器是紧密耦合的。我试图在服务器不启动的情况下启动客户端的多个实例,并且没有错误。当我启动服务器时,它看到了来自客户端的消息并响应了每个客户端。所以看起来客户端将消息发布到队列中,当服务器部分唤醒时,它会从队列中获取消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 2015-04-22
    相关资源
    最近更新 更多