Cassandra和塔格是怎么一起玩的?

v1uwarro  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(421)

直到现在,我只使用了akka持久性cassandra和日志插件,并没有太多的注意标签。
最近我做了一点实验来了解它是如何工作的,但是有一些观点让我很困惑,所以我想问一下这些问题。。。
现在,我了解到标签的存在,所以cassandra可以创建标签和timebucket分区来防止cassandra中的热点。
当我配置cassandra日志插件和事件标记时,我在cassandra密钥空间、消息、元数据、标记扫描、标记视图、标记写入进度中看到以下表格。。。
现在,如果没有配置标签,日志插件只写入消息表,但如果同时配置了事件标签,它将同时保存到消息和标签扫描、标签视图、标签写入进度表。。。
那么第一个问题,写消息和标记扫描、标记视图、标记写入进度的优点或原因是什么,这不意味着Cassandra的负载更大吗?
第二个问题,我做错了什么吗?我是否必须关闭日志插件中的某个东西,这样它就不会持续出现在消息中。。。
我错过了什么?
谢谢你的回答。。。

7y4bm7vi

7y4bm7vi1#

标记并不是特定于cassandrajournal插件的,而是akka persistence/akka persistence查询的一个通用概念,它允许事件源应用程序标记事件的一个子集,并将这些事件作为流单独使用。
标记通常用于将投影拆分/切分为多个工作区,例如,请参见此处的cqrs akka示例:https://github.com/akka/akka-samples/tree/2.6/akka-sample-cqrs-scalahttpshttp://github.com/akka/akka-samples/tree/2.6/akka-sample-cqrs-java
事件总是存储在messages表中,即使它们被标记,所以标记会导致一些额外的写操作。
这个 tag_write_progress 以及 tag_scanning 是与标记事件的一致性和顺序相关的实现细节。
如果在应用程序中不使用标记,可以禁用 events-by-tag 完全支持插件,因为维护相关表会增加一些开销。

相关问题