问题标签 [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.
azure - 基于 Linux JNA 的亲和性不可用,因为它无法加载
我有一个在 java 上实现的侦听器项目,它使用来自 kafka 的数据并推入 Vanilla Chronicle 队列。我正在使用 jna 的 java 库,jna-platform 版本 4.4.0 和编年史队列版本 3.6.4。当我在 Windows 上运行项目时,它成功使用数据并将数据推送到队列中。但是,当我在 Azure VM 上的“Ubuntu 16.04.3 LTS”上运行它,同时将数据推送到队列中时,它会失败。而且,当我在 VMware 中的本地 ubuntu 上运行它时,它也成功运行。任何人都知道问题是什么?执行日志如下:
java - Chronicle 队列在每次空读取时写入 moveToIndex 日志
Chronicle 队列在 rollcycle 到达后的每个调用上写入moveToIndex日志。此日志仅在队列中没有可用消息时出现。这是预期的行为吗?如果appender长时间闲置有什么问题吗?excerptTailer.readDocument(message)
我有一个案例,即使附加程序仍然将消息写入队列,阅读器也会停止阅读消息并返回 false。但我无法找出场景。这就是我怀疑日志的原因。
日志如下,
我的编年史队列版本:4.5.27
chronicle - 将数据从一个编年史复制到另一个
对于备份的概念,我需要将数据从一个编年史队列复制到另一个。
将整个 Bytes 对象从一个队列的线直接复制到另一个队列中是否安全?
就像是
documentContext().wire().bytes().read(byte_buffer)
然后将此 byte_buffer 包装到 byte_store 中并写为
documentContext().wire().bytes().write(byte_Store)。
我这样做的原因是避免任何来回转换为自定义对象?
chronicle-queue - Maven Central 上的编年史队列
我发现 maven Central 上的 Chronicle-queue 版本已经很老了:4.5.27,而 4.6.23 是最近在 github 上发布的。这是否意味着 4.5.27 是一种“产品就绪”,而所有 4.5.27+ 都是实验性的?或者您使用其他存储库进行分发?
concurrency - Chronicle Queue - 阅读器修改消息
我们正准备使用 Chronicle Queue (SingleChronicleQueue) 来记录我们的消息。原型现在正在工作。然而我们有一些问题。
读者可以修改消息吗?我们使用编年史地图来记录读取的索引,以在重新启动后删除重复的消息。如果这不起作用,我们希望标记在阅读器端读取的消息。实际上我们已经这样做了。现在的问题是,有时我们会收到类似“15c77d8be (62) was 8000003f is 3f”之类的错误消息,我们怀疑这是因为现在跨缓存行边界的写入不再是原子的。推荐的解决方法是什么?目前我们在消息前添加一个字节的标签,添加一个3字节的填充会解决问题吗?
我们可以使用自己的滚动策略吗?我们想使用按小时计费的策略。但每小时政策要求文件包含少于 2.56 亿个条目。我们可以使用我们的自定义滚动周期吗?有什么注意事项吗?
chronicle - Chronicle Queue - 从上次读取位置读取并删除所有消费者读取的文件
我正在使用 Chronicle 4.5.27 编写和读取市场数据。我有一个作家,但有多个读者。开发操作系统是 Windows,然后是 Linux,用于 Prod 部署。
如何实现以下用例?
- 如何从上次读取位置开始读取队列?例如,如果阅读器从一个有 100 条记录的文件中读取了 15 条记录并且崩溃/停止了如何从下一次重新启动时从第 16 条记录开始读取?CQ 中是否有内置的持久支持?
- 删除所有消费者读取的文件以节省磁盘空间。
为此,我已经实现了,但由于一些未解决的问题,文件似乎没有在 Windows 上删除。CQ 中是否有任何内置支持,只有所有感兴趣的消费者都可以删除文件?
我已经阅读了一些关于这个主题的博客和帖子,例如
https://vanilla-java.github.io/2016/03/29/Microservices-in-the-Chronicle-world-Part-4.html
https://groups.google.com/forum/#!topic/java-chronicle/0Nz5P-nvLgM
但仍然想知道是否有人实现了这个用例。
lambda - 带有 lambda 的 Mockito ArgumentCaptor(编年史队列)
我已经实现了 Chronicle Queue,为此我想编写单元测试用例。如何在使用 lambda 时捕获 ArgumentCaptor 参数。我想在测试用例中获取 writeBuffer 来验证数据。
测试用例:
谢谢
chronicle - 关于编年史队列中的子主题
我正在寻找将消息写入单个队列。我想使用子主题功能,以便裁缝可以选择阅读一个主题下的所有子主题,或者选择要阅读的特定子主题。
文档中提到在主主题下的目录中支持子主题,所以为了从子主题中读取,我们是否只需创建一个新队列并将其指向子主题路径?
这只会输出 aaa,但我希望它输出 aaa 和 bbb
chronicle - 编年史目录-listing.cq4t 版本
我已将chronicle-queue 二进制文件升级到最新版本,并注意到一个新文件(可能不是那么新,但我以前没见过)- directory-listing.cq4t。
我有一个测试创建一个常规队列,SingleChronicleQueueBuilder
然后执行一些操作并关闭它。作为最后一步,我将强制删除包含数据的整个文件夹。
问题是directory-listing.cq4t
即使队列已经关闭,它也被java进程锁定。请注意,数据文件本身被删除,没有任何问题。
在编年史代码库SingleChronicleQueueTest.shouldCreateQueueInCurrentDirectory
中有一个测试可以证明上述行为,因为文件没有被删除并且 delete() 调用返回 false (但结果从未断言)
这是一个已知问题还是我做错了?(队列释放)
chronicle - 编年史队列如何启用远程 appender 和 tailer
我刚开始阅读最新的 V4 文档。它建议远程追加和尾部,建议使用chronicle-engine
. 它是否需要企业支持该组功能?我查看了 的测试包chronicle-engine
,发现这个测试类WireRemoteStatelessQueueClientTest.java
似乎是相关的,但完全被注释掉了。