chronicle - 如何在两个不同的线程中使用相同的 CQ
问题描述
假设我有两个线程想要使用相同的编年史队列进行通信,作者:
SingleChronicleQueue queue_en = SingleChronicleQueueBuilder.binary(path).build();
ExcerptAppender appender = queue_en.acquireAppender();
....
读者:
SingleChronicleQueue queue_en = SingleChronicleQueueBuilder.binary(path).build();
ExcerptTailer tailer = queue_en.createTailer();
...
现在当我开始我的应用程序时,我得到了:
[Thread-1] n.o.c.q.i.t.SingleTableStore Failed to acquire a lock on the table store file. Retrying
Exception in thread "Thread-1" java.lang.NoSuchMethodError: net.openhft.chronicle.core.util.Time.sleep(JLjava/util/concurrent/TimeUnit;)V
at net.openhft.chronicle.queue.impl.table.SingleTableStore.doWithExclusiveLock(SingleTableStore.java:153)
at net.openhft.chronicle.queue.impl.table.SingleTableBuilder.build(SingleTableBuilder.java:111)
at net.openhft.chronicle.queue.impl.single.SingleChronicleQueueBuilder.initializeMetadata(SingleChronicleQueueBuilder.java:430)
at net.openhft.chronicle.queue.impl.single.SingleChronicleQueueBuilder.preBuild(SingleChronicleQueueBuilder.java:995)
at net.openhft.chronicle.queue.impl.single.SingleChronicleQueueBuilder.build(SingleChronicleQueueBuilder.java:328)
at
....
我可以问你如何正确地做到这一点吗?
解决方案
这意味着您使用的是不兼容的core
with版本queue
我建议您使用 Chronicle-bom 来确保所有版本都经过测试。
这是一个例子
https://github.com/OpenHFT/Chronicle-Queue-Demo/tree/master/order-processor
<dependencyManagement>
<dependencies>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>third-party-bom</artifactId>
<type>pom</type>
<version>3.6.15</version>
<scope>import</scope>
</dependency>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-bom</artifactId>
<version>2.17.482</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-queue</artifactId>
</dependency>
推荐阅读
- python - 从python的DataFramein单元格中删除重复值
- highcharts - 带有 highcharts.css 导入的 Highcharts styledMode 导致饼图图例悬停应用于所有图例项
- c - 以可爱的方式打印一棵树(C)
- c# - 需要帮助用 json 填充列表框,当前显示空值
- javascript - React 将焦点设置到下一个组件的下一个 inputField
- c# - SignalR 服务器广播在使用 DefaultDependencyResolver 时停止工作
- r - 对 2 个不同的变量进行排序
- google-compute-engine - Google Compute Engine 的配额增加
- java - Spring @Scheduled 注解按顺序执行同一时间实例
- windows - 是否可以将系统区域设置强制到程序?