我可以使用哪些数据存储系统来通过订阅实现实时通知?无论是有关数据更新的通知,还是带有负载的自定义消息。
令人惊讶的是,这个问题没有答案,至少在一个地方没有。
Redis:内存中的键/值存储。它可以从列表中执行blocking-pop,并且还支持PubSub。这使您能够构建项目队列:例如序列化字符串。
Postgres:关系数据库。 NOTIFY 支持发送带有有效负载的命名事件。这些可以从对插入/更新/删除操作做出反应的触发器发送。
MongoDB。 NoSQL 文档数据库。支持更改流,让您订阅集合0(≈数据库)并接收有关创建的文档的更新。
EventStore。 事件采购的商店。支持订阅事件流。
RethinkDB 支持实时查询:即长时间运行的查询,在结果到达时发送结果。不幸的是,该项目似乎到 2021 年就已经死了。
添加到 kolypo 的答案...
Firebase 的设置非常简单,并且对于移动和网络都具有非常好的实时功能。
AWS AppSync 是设置发布/订阅的另一个选项。我没有使用过它,但如果您的组织已经在 AWS 堆栈中联姻,那么它会很有吸引力。
Couchbase允许实时查询,但我发现它在连接不稳定的移动场景中存在数据同步问题