gpt4 book ai didi

akka - akka 持久性是否比我在 redis 中存储消息状态更好?

转载 作者:行者123 更新时间:2023-12-04 02:15:58 24 4
gpt4 key购买 nike

我目前喜欢将 redis 与 akka 结合使用,因为我可以通过查询 redis 来监控哪些消息已被处理。 Redis 也会持久保存到磁盘。

akka persistance 与仅使用 redis 相比如何?

最佳答案

我会说这两种选择都不比另一种更好,尽管提供的东西不同。 Akka 持久化是关于持久化您的 actor 处理的每个事件,以便可以重播这些事件以重建您的 actor 的状态。它是事件溯源的实现 http://martinfowler.com/eaaDev/EventSourcing.html .您还可以出于其他目的查询存储的事件,例如对系统行为的分析。由于记录了每个历史事件,因此可以详分割析。 http://www.cakesolutions.net/teamblogs/using-spark-to-analyse-akka-persistence-events-in-cassandra

另一种持久性机制可能只包含系统的当前状态,因此无法对历史进行分析。

事件溯源可能不适合所有应用程序,引用 Martin Fowler 的文章:

Packaging up every change to an application as an event is an interface style that not everyone is comfortable with, and many find to be awkward. As a result it's not a natural choice and to use it means that you expect to get some form of return.

通过直接使用 Redis(或任何其他数据库),您可以更完全地控制持久化方法。使用 Akka Persistence,您需要使用它的做事方式,但一些细节是从您那里抽象出来的。在某种程度上,这是灵 active (编写自己的持久层,例如使用 Redis)与易用性(使用 Akka Persistence 库)之间的权衡。

Akka Persistence 就用于持久性的系统而言是可插拔的。许多存储系统都有插件,包括 Redis:https://github.com/hootsuite/akka-persistence-redis

因此,Akka Persistence 的一个优点是您可以更改持久层(例如,在测试和生产之间,或者从 RDBMS 到 NoSQL,因为您的应用程序需要随时间变化)而无需更改您的应用程序代码。

关于akka - akka 持久性是否比我在 redis 中存储消息状态更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33617568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com