我刚刚开始使用历史记录队列 - 但是我对使用哪个 API 来读取/写入队列有点困惑。具体来说编年史队列 5 https://www.javadoc.io/doc/net.openhft/chronicle-queue/5.17.17 vs 编年史-3.5.* https://www.javadoc.io/doc/net.openhft/chronicle/3.5.3
我经历过这个link https://github.com/OpenHFT/Chronicle-Queue#contents它基本上使用chronicle-queue API,但还有其他类似的this https://www.baeldung.com/java-chronicle-queue它使用编年史。
下面这2个有什么区别?
Chronicle chronicle = ChronicleQueueBuilder.indexed(_location).build();
ExcerptAppender appender = chronicle.createAppender();
appender.startExcerpt();
appender.writeUTF("Hello World");
vs
ChronicleQueue queue = ChronicleQueue.singleBuilder(_location).build();
final net.openhft.chronicle.queue.ExcerptAppender appender = queue.acquireAppender();
try (DocumentContext dc = appender.writingDocument())
{
dc.wire().write("hello").text("world " );
}
Javadoc 文档编年史队列 https://static.javadoc.io/net.openhft/chronicle-queue/5.17.17/net/openhft/chronicle/queue/ChronicleQueue.html
and
编年史 https://static.javadoc.io/net.openhft/chronicle/3.5.3/net/openhft/chronicle/Chronicle.html看起来很相似
他们都在向历史记录队列写入消息。我相信这一点
Chronicle chronicle = ChronicleQueueBuilder.indexed(_location).build();
ExcerptAppender appender = chronicle.createAppender();
appender.startExcerpt();
appender.writeUTF("Hello World");
现在可以像这样写入编年史队列 5
try (final ChronicleQueue queue = SingleChronicleQueueBuilder.binary("temp-dir").build()) {
final ExcerptAppender appender = queue.acquireAppender();
appender.writeText("Hello World");
}
或者如果你想存储key
:value
数据,像这样
try (final ChronicleQueue queue = SingleChronicleQueueBuilder.binary("temp-dir-2").build()) {
final ExcerptAppender appender = queue.acquireAppender();
try (DocumentContext dc = appender.writingDocument()) {
dc.wire().write("hello").text("world");
}
DumpQueueMain.dump("temp-dir-2");
}
您可以使用
DumpQueueMain.dump("temp-dir-2");
例如,查看数据是如何存储的
# position: 131360, header: 2
--- !!data #binary
hello: world
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)