多个Chronicle / ExcerptAppenders可以写入同一个队列吗?

时间:2015-11-13 15:17:06

标签: chronicle chronicle-queue

使用Chronicle和vertx.io ...

我按照每个垂直创建一个新的Chronicle。即:每个线程一个实例。

chronicle = ChronicleQueueBuilder.indexed("samePath").build(); <-- This is created per thread to the same queue.

现在,对于每个网络http POST请求,我做...每个帖子一次只能处理1个帖子。

String message = request.toString();
ExcerptAppender appender = chronicle.createAppender();

// Configure the appender to write up to 100 bytes
appender.startExcerpt(message.length()+100);

// Copy the content of the Object as binary
appender.writeObject(message);

// Commit
appender.finish();

这似乎有效。但是可以吗?

1 个答案:

答案 0 :(得分:1)

对于IndexedChronicle而言,这是不行的,而对于VanillaChronicle则是如此。

如果可以的话,最好是在Verticle中共享相同的VanillaChonicle实例(当然在同一个进程中),并根据需要创建一个appender。

请注意,您可以使用WriteUtf *而不是writeObject来序列化字符串,因为它更有效。