我想了解 aeron 集群内部通信
嗨, 我是 Aeron Cluster 的新手,我尝试了解各个集群组件之间的关系。
来自 https://github.com/real-logic/aeron/wiki/Cluster-Tutorial :
4.3。运行集群 现在我们已经配置好了集群,可以开始运行它了。启动服务的代码如下。
try (
ClusteredMediaDriver clusteredMediaDriver = ClusteredMediaDriver.launch(
mediaDriverContext, archiveContext, consensusModuleContext); // (1)
ClusteredServiceContainer container = ClusteredServiceContainer.launch(
clusteredServiceContext)) // (2)
{
System.out.println("\[" + nodeId + "\] Started Cluster Node on " + hostname + "...");
barrier.await(); // (3)
System.out.println("\[" + nodeId + "\] Exiting");
}
我不明白 ClusteredServiceContainer 如何与 ClusteredMediaDriver 通信。 我的意思是,在上面的代码中,每个对象都是独立构造的。它们之间的“粘合剂”是什么?
MediaDriver.Context
ClusteredServiceContainer.Context
他们使用上面相同的aeronDirectoryName
,在磁盘或内存上共享相同的文件。