代码之家  ›  专栏  ›  技术社区  ›  xRobot

Erlang:2个Web服务器上的2个数据库?

  •  1
  • xRobot  · 技术社区  · 15 年前

    我用php+postgresql创建了一个博客系统。 现在,我想添加一个网络聊天(同时为数百万用户提供实时服务),其中每条消息都保存在数据库中。

    我正在考虑在不同的web服务器上使用erlang+mnesia来解决这个问题。

    消息的表将如下所示:

    消息ID,用户ID,消息,日期

    用户id应该与另一个web服务器上postgresql数据库中的users表相关。

    我怎么做才能不输呢?

    如果你有其他创造性的解决方案,请告诉我;)。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Jonathan Ringstad    15 年前

    我不知道你为什么要把每一条消息都保存在数据库中,但mnesia听起来并不是一个特别好的选择。mnesia更像是一个分布式的键值存储,当您需要以简单到中等复杂的方式存储“表格数据”并进行查询时,可以使用它来保持应用程序的状态。

    对于大量的文本,我听说lucene应该是不错的,它有全文搜索功能等,据说是高效的,你可能想看看它:

    Apache Lucene Project page

    除此之外,使用erlang作为chatserver,使用mnesia保存所有其他状态听起来是个不错的主意,您可以在erlang站点上编写一个javascript客户端,使用jsonp(克服跨域问题)和mochiweb来完成webserver部分。

    编写其余的核心聊天系统应该相当简单,有趣的部分,所以说:)

        2
  •  0
  •   Jeremy Wall    15 年前

    mnesia当然可以按照你的建议做,但是如果你已经设置了postgres,有什么原因你不想使用它吗?它可能比创建一个完整的独立服务更简单,如果您希望erlang运行聊天服务,那么它有postgres驱动程序。

        3
  •  0
  •   Flinkman    15 年前

    这个项目使用postgresql非常成功。

    http://zotonic.com/

    对于数据库访问PostgreSQL,可能需要使用相同的代码。