问题标签 [chronicle-queue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
244 浏览

chronicle-queue - ChronicleQueue - 如何从tailer 读取自定义对象

我对 ChronicleQueue 非常陌生,我无法找到一个直接的示例来说明如何从tailer 读回我的自定义对象。

我的课程包含一些字符串和数字,我可以使用 appender 写入队列,但是没有直接的 api 可以调用。如何从 tailer.readDocument api 获取 MyData 对象?

0 投票
2 回答
347 浏览

chronicle-queue - ChronicleQueue - 无法清理旧的 CQ4 文件

我正在使用 CronicleQueue,但我只有一位作家/读者。想要在阅读器完成 CQ4 文件后立即进行清理。以下代码无法删除文件,在 onReleased() 事件期间 CQ 是否仍持有文件引用?

0 投票
1 回答
155 浏览

chronicle - 带有历史队列的基于 SAN 的存储

几天前我开始使用 Chronicle-queue,我正在阅读它的文档

Chronicle Queue 不支持在任何网络文件系统上运行,无论是 NFS、AFS、基于 SAN 的存储还是其他任何东西。原因是那些文件系统没有为 Chronicle Queue 使用的内存映射文件提供所有必需的原语。

当我尝试从 SAN 安装位置写入和读取时,我能够做到。

有人能解释一下“编年史不支持在任何网络文件系统上运行”的确切含义吗?

0 投票
1 回答
57 浏览

chronicle - 编年史队列:写入字节数组时出现 AssertionError(标头内的标头)

我正在使用编年史队列 v4 将序列化对象写入队列。但我一直低于异常

线程“CLF-1”java.lang.AssertionError 中的异常:您不能将标题放在标题中,请检查您是否没有嵌套文档。在 net.openhft.chronicle.wire.AbstractWire.writeHeader(AbstractWire.java:228) 在 net.openhft.chronicle.queue.impl.single.StoreRecovery.writeHeader(StoreRecovery.java:28) 在 net.openhft.chronicle.queue .impl.single.SingleChronicleQueueStore.writeHeader(SingleChronicleQueueStore.java:298) 在 net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreAppender.writingDocument(SingleChronicleQueueExcerpts.java:232) 在 net.openhft.chronicle.wire.MarshallableOut .writeDocument(MarshallableOut.java:68)

这就是我的代码的样子

.cq4 文件中没有写入任何内容。但是我看到每次调用 writeDocument() 方法时最后修改时间都会改变。

0 投票
1 回答
164 浏览

chronicle-queue - Multithread and Chronicle queue

so I'm trying to see what's the fastest way to write to Chronicle Queue in a multithread env so I have the following:

And I ran with parameters: path 2500 40

出于某种原因,这会随着核心转储而崩溃。我究竟做错了什么?我的磁盘有很多磁盘空间,所以没关系。谢谢!!

0 投票
1 回答
158 浏览

java - 用于查看编年史队列/地图内容的 UI/实用程序

是否有任何 UI 或实用程序可以让我们检查 Chronicle Queues 和 Chronicle Maps 的内容?

到目前为止,我只发现DumpQueueMain类会吐出队列中所有可用的信息。

谢谢!

0 投票
1 回答
336 浏览

chronicle - 编年史如何增加处理器?

我正在使用编年史队列 5.16.8

我收到此警告

可以增加这个处理器吗?

源代码

我的方法是使用 Chronicle Map 来存储索引阅读器。我想,我可以在 recordHistory 上出现相同的行为......

我不得不使用 Jackson Json 转换...我不知道如何使用 writeDocument 方法。

While true 循环,这是我在这里的另一件不好的事情……我不知道如何找到队列中的最后一个索引。

0 投票
1 回答
256 浏览

chronicle - 使用 Chronicle-Queue 作为基于文件的 FIFO 队列

我从帖子中了解了 Chronicle-Queue: 实现基于文件的队列

这是我的用例:

  • 我有一个服务于 http 请求的网络服务器(比如 tomcat)
  • 每个请求处理可能会生成一些跟踪信息。
  • 我会将这些跟踪信息写入 Chronicle-Queue(以字节 [] 为单位,我将自己进行编组/解组,例如使用 protobuf)
  • 我将有一个专用线程来使用 tailer 从 Chronicle-Queue 中读取。每条消息将只处理一次,如果失败,我将有自己的重试策略将其放回队列以允许下一次尝试。

基于上述用例,我有以下问题:

  1. 应该使用多少个附加程序?多个线程共享 1 个附加程序或每个线程都有自己的附加程序?

  2. queue.acquireAppender() 是一个繁重的操作吗?我应该缓存appender以避免调用acquireAppender()吗?

  3. 如果由于某种原因服务器关闭,tailer 是否可以记住最后一个成功读取条目并继续下一个条目?(就像磨石功能)

  4. 如何清除/删除旧文件?有什么 API 可以进行清除吗?

还有一个无关紧要的问题:

是否可以使用 Chronicle-Queue 来实现基于文件的 BlockingQueue?

谢谢

莱昂

0 投票
3 回答
76 浏览

chronicle - Chroncile Queue tailer 为某些缓冲区添加了额外的字节 (0x008F)。如何确定哪些缓冲区具有此填充?

我们将 XML 数据编组为字符串并将其转换为字节getBytes(StandardCharsets.UTF_8)并将它们写入编年史队列:

并像这样阅读:

当我们读回缓冲区时,大多数缓冲区大小都匹配,但对于某些缓冲区,例如 100 分之一,我们会获得额外的字节(0x008F 的 1/2/3 字节)。我们无法确定哪些缓冲区具有此填充,并且由于此填充而无法真正解组缓冲区。不明白为什么有些缓冲区有这些额外的字节?

0 投票
2 回答
516 浏览

chronicle - 编年史队列大小确定

如果我们需要将编年史队列的总大小限制为 1GB 或 10GB。最好的方法是什么?

我们将缓冲区存储为字节,因此我试图仅通过对缓冲区大小求和来计算总大小,但看起来没有简单的方法可以将其与队列的实际大小相关联。一种方法是每 5 分钟左右使用文件实用程序计算总目录大小,但如果间隔中有大量数据并且可能溢出,则容易出错