【问题标题】:SignalR on AppHarbor with multiple instancesAppHarbor 上的 SignalR 具有多个实例
【发布时间】:2012-03-04 15:55:21
【问题描述】:

我正在评估在 AppHarbor 托管的应用程序中使用 SignalR,该应用程序在 2 个以上实例(网络工作者)上运行,但阅读它看起来好像 thsi 不起作用: SignalR wiki 表示网络农场的扩展仍在开发中(对我来说,2 个以上的网络工作者听起来像网络农场)。 Another question here on StackOverflow 表示它不能在多个 iss 服务器上运行。 另一方面,在 AppHarbor 支持网站 they say 上,它运行良好,无需考虑太多信息(没有回答所有问题,例如同时连接的数量、负载平衡器的限制等)。

有人可以确认 SignalR 是否是挑战 AppHarbor 的正确途径吗?

谢谢!

【问题讨论】:

    标签: appharbor signalr


    【解决方案1】:

    David Fowler 正在为 SignalR 开发 Redis 消息存储。 code is on Github 我相信这将使 SignalR 应用程序扩展到多个 AppHarbor 实例。

    【讨论】:

    • 没错。我们可能还会考虑使用其他技术的解决方案,但这里有一个在 redis 上运行的 JabbR 示例(现在使用一个节点)。这个应用程序应该能够跨节点扩展。 jabbr-redis.apphb.com
    • 我想Redis是用来存储消息的吧? SignalR 通常存储在哪里?在本地文件系统中(显然在每次部署时都会被 appharbor 擦除)?部署时擦除的一部分不会本地文件系统工作吗?每个网络工作者都有自己的文件系统还是只有一个应用程序文件系统?
    • SignalR 通常将内容存储在内存中。当前的实现使用 redis 作为纯消息总线,而不是存储消息。消息在进入时会被复制到每个节点。需要添加的是一些容错能力,以便当一个新节点启动或一个关闭的节点恢复时,它会从 redis 或我们决定缓冲消息的任何地方重新填充其缓存。
    • @Pietro 使用本地文件系统进行存储是行不通的,因为每个实例都有自己的文件系统,不与其他实例同步。
    • 有关支持网络农场的当前最新信息,请查看 dfowler's blog post 关于 SignalR 0.5。
    【解决方案2】:

    2014 年更新的链接:

    SignalR's Redis page on GitHub,目前只是 ASP.Net 网站上Redis doc 的 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多