【问题标题】:ServiceStack.Redis v3 and multiple hosts - recommended architectureServiceStack.Redis v3 和多主机 - 推荐架构
【发布时间】:2017-02-08 04:18:00
【问题描述】:

我们遇到了一个问题:RedisMqServer 的多个实例相互绊倒 - 停止一台服务器会停止其他服务器。显然,我们实现这一点的方式是错误的,但我无法确定在这种情况下应该如何使用 RedisMqServer

我们的基础架构包括:

  • 主/从配置中的两个 Redis 服务器
  • 两个负载平衡的 API 实例(以下称为“API A”)
  • 两个负载平衡的 API 实例(以下称为“API B”)

API A 和 B 是两个独立的应用程序,它们使用 ServiceStack.Redis 的 RedisMqServer 相互发送同步和异步消息。我们正在使用 ServiceStack 的开源 v3 版本。

两个 API 都配置了 RedisMqServer,因为异步通信发生在两个方向。

RedisMqServer 被释放时,它会在mq:topic:in 频道上发送STOP 消息,这会导致服务器取消订阅所有频道,从而停止服务请求。

但是,由于 API A 和 API B 都在使用此通道,因此停止其中一个最终会停止另一个。

每个RedisMqServer 实例是否应该使用一个Redis 服务器实例?

值得注意的是,每个 API 在任何时间点都只连接到单个 Redis 服务器。仅当主服务器不可用时,才连接到从服务器。

【问题讨论】:

    标签: redis servicestack.redis servicestack-bsd


    【解决方案1】:

    这是 v3 中 Redis MQ 的行为,但 v4 中最新的 RedisMqServer 可以正常工作,并且只会停止已释放的 RedisMqServer 实例。

    【讨论】:

    • 很遗憾,但我很感激确认我没有犯一个微不足道的架构错误。谢谢。
    猜你喜欢
    • 2011-02-17
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    相关资源
    最近更新 更多