【问题标题】:Pooling in Phoenix for OrientDB database在 Phoenix 中为 OrientDB 数据库池化
【发布时间】:2015-10-23 23:23:17
【问题描述】:

我想将 Phoenix/Elixir 与 OrientDB 一起使用。我决定构建一个小演示应用程序来更好地理解它。

作为数据库驱动程序,我将使用MarcoPolo 而根本不使用 Ecto。 MarcoPolo 非常低级(二进制驱动程序)并且不支持池化。

我必须使用池吗?凤凰有办法解决吗?还是我必须自己使用Poolboy 之类的东西来实现它?还是别的什么?

我想分享演示应用,让其他人的生活更轻松。所以我想以正确的方式去做。但也许我的方法有点矫枉过正。

【问题讨论】:

    标签: orientdb elixir phoenix-framework


    【解决方案1】:

    MarcoPolo 是一个非阻塞客户端,这意味着当进程要求 MarcoPolo 连接向 OrientDB 发送命令时,MarcoPolo 会立即向 OrientDB 发送命令,但不会等待响应(然后它作为 Erlang 消息接收,因为它在 :gen_tcp 上使用 :active)。这在实践中意味着单个 MarcoPolo 连接应该能够处理多个客户端进程,因此如果您的应用程序不必处理对 OrientDB 的大量请求,则无需池化。

    如果您想使用池化,最简单的解决方案可能是您已经想到的 poolboy。我没有特定于 OrientDB 的设置,但您可以在 Redix(Elixir 的 Redis 客户端)的文档中找到有关如何设置与数据库的连接池的一些信息。原理是一样的。 This 是 Redix 文档中涉及池的部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-16
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      相关资源
      最近更新 更多