我有一个简单的Java程序(已经Docker化),并且在Kubernetes(Pod)中部署。这个Java程序只是一个普通的Java项目,用于监听和消费特定的主题。例如:SAMPLE-SAFE-TOPIC。
我必须安全地取消订阅此主题,这意味着即使删除此Pod(Java消费者),也不会丢失任何数据。
以下是我搜索到的代码:
public static void unsubscribeSafelyFromKafka() {
logger.debug("Safely unsubscribe to topic..");
if (myKakfaConsumer != null) {
myKafkaConsumer.unsubscribe();
myKafkaConsumer.close();
}
}
我需要通过命令行运行这段代码,其中Java程序已经存在一个静态的main方法。
我的问题是:
- 上面的代码是否保证没有记录会丢失?
- 当已经存在一个静态的main()时,如何通过命令行触发上述代码?
注意:我正在通过命令行运行Java项目。例如:java -jar MyKafkaConsumer.jar,因为这是要求。
请帮忙。