Database 连续数据流数据库设计

Database 连续数据流数据库设计,database,database-design,architecture,software-design,system-design,Database,Database Design,Architecture,Software Design,System Design,我目前正在开发一个工具,其中一个客户端a可以向服务器发送一个连续的数据流(只是文本),另一个客户端B应该能够实时观察数据流,就像再次从服务器获取相同的数据一样。 当然,服务器不应该将所有可用数据发送给客户端B,因为它可以获取大量文本,因此我目前正在考虑如何设计客户端B只获取最新数据 我的第一种方法类似于分页,客户端B向服务器发送另一个属性client_line=10,指示他已经拥有多少行数据,然后我们可以使用where line>client_line查询数据库。 但是,数据库可能会变得相当大,

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

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


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

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

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