直到现在,我只使用akka-persistence-cassandra与日志插件,没有太大的注意标签。
最近我做了一些实验来了解它的工作原理,但是有些地方让我很困惑,所以我想问问这里的那些人。
现在,我了解到标签的存在,这样Cassandra可以在标签和时间桶分区上创建,以防止Cassandra中的热点。
当我配置Cassandra -日志插件和事件标记时,我在Cassandra键空间、消息、元数据、tag_scanning、tag_views、tag_write_progress.
如果没有配置标记,日志插件只写入messages表,但如果也配置了事件标记,则日志插件将同时保存到消息和tag_scanning、tag_views、tag_write_progress表.
那么第一个问题,写消息和写Cassandra?
我在这里错过了什么?
寻求答案..。
发布于 2020-03-24 12:20:35
标记不是特定于Cassandra日志插件,而是Akka Persistence/Akka Persistence查询的通用概念,允许事件源应用程序标记事件的子集,并将这些事件单独作为流使用。
标记通常用于拆分/碎片,将投影更新为多个工作人员,例如,请参见这里的CQRS示例:https://github.com/akka/akka-samples/tree/2.6/akka-sample-cqrs-scala https://github.com/akka/akka-samples/tree/2.6/akka-sample-cqrs-java
事件总是存储在messages表中,即使它们被标记了,因此标记反而会导致一些额外的写操作。
tag_write_progress和tag_scanning是与标记事件的一致性和排序相关的实现细节。
如果应用程序中没有使用标记,则可以在插件中完全禁用events-by-tag支持,因为维护相关表需要附加一些开销。
https://stackoverflow.com/questions/60740005
复制相似问题