【问题标题】:How do you architect complex Rails systems [closed]您如何构建复杂的 Rails 系统 [关闭]
【发布时间】:2010-06-09 17:16:58
【问题描述】:

我们有以下系统(以及更多系统)可以将数据从一个应用推送/拉取到另一个应用:

  • 托管 CRM (InsideSales.com)
  • Asterisk 电话系统(内部)
  • 横幅广告系统(openx,我们托管)
  • 潜在客户生成系统(本土)
  • 电子商务商店(大礼包,我们托管)
  • 工作委员会(本土)
  • 一些工作现场刮擦 + 入站工作提要
  • 电子邮件传送系统(如 Mailchimp,本土)
  • 事件管理系统(如 eventbrite,本土)
  • 仪表板系统(大量图表和报告从所有其他系统中提取信息)

随着 Rails 3 的临近,我真的很想采用微应用策略,但我正在尝试决定是否应该让应用通过 REST HTTP API 进行通信,或者因为我可以控制所有应用,我应该做些什么就像代码中的共享模型一样,它简化了但也允许东西更容易越界泄漏......

我听说 37signals 有很多小应用程序,我很好奇这些应用程序是如何相互通信的......或者如果您有任何关于您自己的多应用程序经验的建议。

谢谢!我也试过在我的博客http://rywalker.com/chaos-2010 上问这个问题。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 rest


    【解决方案1】:

    我实际上收到了来自 DHH 的电子邮件回复...

    我们将两者结合使用,但我们默认使用 REST 集成。我们使用直接数据库集成的唯一地方是 37signals ID 用户数据库。因为它需要这么快。 REST 更加理智。从那里开始,然后在需要时进行优化。

    【讨论】:

      【解决方案2】:

      上次我不得不疯狂地将一堆小应用程序粘在一起时,我使用了一个简单的 REST API。

      奖励积分:它允许与用其他语言编写的服务/应用程序集成。

      如果您有一个喜欢流行语的疯狂经理,他喜欢在没有警告的情况下调整技术,这也会有所帮助。

      【讨论】:

        【解决方案3】:

        我也有同样的优点:我还必须与一些未完全准备好 HTTP 的守护进程进行交流。所以我遵循以下模式: REST API 使用 XML/JSON 交换数据并使用 memcache 交换短消息。 (您定义了一些将在 memcache 和其他软件中更新的键,只需拉动 memcache 寻找这些键)

        作为安全措施,我使用数字证书添加了 API KEY 或 HTTP 客户端身份验证。

        【讨论】:

          【解决方案4】:

          另一个选项是 AMQP 消息传递(通过 rabbitmq 或其他方式)。

          【讨论】:

            猜你喜欢
            • 2010-11-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-10
            • 2011-07-12
            • 2010-10-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多