在代码中使用Aeron.clusterClient().close()方法关闭Aeron集群客户端之前,先确保已经调用了Aeron.addSubscription()方法,以避免在关闭已订阅的应用时影响到其他已订阅的应用。此外,需要在关闭使用完的Aeron Subscription对象之前,先调用Subscription.release()方法释放资源。
示例代码:
//创建Aeron对象 Aeron aeron = Aeron.connect();
//添加订阅 Subscription subscription = aeron.addSubscription(channel, streamId);
//创建Aeron集群客户端 AeronCluster aeronCluster = AeronCluster.connect(clusterClientContext);
//关闭已订阅的应用前先确认已经添加订阅 if(subscription != null){ //关闭Aeron集群客户端 aeronCluster.context().clusterClient().close(); //释放已使用的Aeron Subscription对象资源 subscription.release(); }
//关闭Aeron对象 aeron.close();