【问题标题】:Database Design for continuous data stream连续数据流的数据库设计
【发布时间】:2021-06-13 23:42:56
【问题描述】:

我目前正在开发一种工具,其中一个客户端 A 可以将连续数据流(只是文本)发送到服务器,而另一个客户端 B 应该能够实时查看数据流,就像从再次服务器。 当然,服务器不应该将所有可用数据发送给客户端 B,因为它可以获取大量文本,所以我目前正在考虑如何设计客户端 B 仅获取最新数据。

我的第一种方法是类似于分页,客户端 B 向服务器发送另一个属性client_lines = 10,指示他已经拥有多少行数据,然后我们可以使用where lines > client_lines 查询我们的数据库。 但是数据库可能会变得非常大,因为我们将为许多用户提供一个数据库,每个用户发送的数据可能有很多文本行。因此,使用来自不同用户的数据查询完整的数据库似乎不是一个超级有效的解决方案。

有没有更聪明的方法?也许使用像 MongoDB 这样的 NoSQL 数据库?

【问题讨论】:

    标签: database database-design architecture software-design system-design


    【解决方案1】:

    您正在寻找一个主题,一个pub-sub 实现,其中多个订阅者可以接收已发布的消息,而消费者可能只使用增量位。您可以通过 ActiveMQ、JMS、Kafka、Amazon SNS、Kinesis 等产品找到很好的实现。它偶尔会在关系数据库中实现,但很少在关系数据库中实现很好。使用专用解决方案通常会好得多。

    请注意,数据库通常会订阅主题以接收更新并连接到关系模型。

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 2018-10-19
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多