如何解决QLDB 是否与发件箱模式兼容?
我有一个最适合 QLDB 的用例。我还认为发件箱模式对数据可靠性很有意义。但是,我担心发件箱条目会污染日志。
我的理解是,虽然我可以将“发件箱”表与主数据表分开,但日记账在整个分类账中共享。似乎发件箱模式传统上使用关系数据库,其中不可变日志的概念不是问题。
随着数据集的增长,这会成为问题吗?更重要的是,是否有更有意义的替代模式?
解决方法
由于日志是提交到分类帐的每笔交易的不可变历史记录,如果您将发件箱模式与 QLDB 一起使用,您的分类帐将包含通过您的发件箱表的消息的永久历史记录。如果您需要排队等待发送的消息的不可篡改的审计历史记录以及它们被发送(从表中“删除”)的记录,这很好。但是,如果您不需要它,那么您将在分类帐的整个生命周期内为这些消息支付存储费用,而不会从中获得太多价值。
典型的事件驱动方法是使用 QLDB 的流功能,该功能将 Kinesis Data Stream 与您的分类账相关联。每次提交事务时,QLDB 都会将事务发布到 Kinesis Data Stream。这使您能够从分类帐中发生的交易中驱动事件。通过这种方法,您可以将业务数据提交到分类帐中,而不必担心发件箱表。该文件应包含您在消息传递中所需的信息。提交后,QLDB 将文档从事务推送到 Kinesis,您在其中使用 Lambda 函数处理它,该函数将消息向前发送。
需要注意的一点是,QLDB 提供了至少一次将数据传送到 Kinesis 的保证。这意味着您需要识别和处理(或仅仅容忍)潜在的重复消息。不过,无论如何,您应该始终考虑分布式系统中的幂等性。
如果您不想为 Kinesis 付费并且不需要实时方法,您可以通过计划的 QLDB 导出到 S3 和对导出文件进行一些批处理来做一些事情,但我会开始与流媒体。如果您想了解更多有关出口方法的信息,请私信我。
另见:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。