我无法在kafkajs 文档或浏览官方 Apache Kafka设计文档中找到答案,但在他们的producer
示例中,producer
发送消息后断开连接。但是,这可能是因为它只是一个微不足道的例子,而不是一个长期运行的过程。
对于长时间运行的应用程序,如网络应用程序,我想知道在发送消息后断开与生产者的连接是否更好,或者(可能)在运行的应用程序的整个生命周期中保持连接打开更好。
保持连接打开的一个明显优点是它在发送消息时不会重新连接,一个明显的缺点是它保持 TCP 连接打开。我也不知道有多大的优势或劣势。
我的猜测是它取决于预期的数量。如果应用程序要不断发送消息,最好保持连接打开,而如果不经常发送消息,则发送消息后断开连接是合适的。
这是一个准确的评估吗?我更想知道我是否遗漏了细微差别或做出了错误的假设。