当前位置: 首页 > 知识库问答 >
问题:

何时关闭生产者或消费者

孙胜泫
2023-03-14

最近,我们与Kafka消费者和生产商之间出现了一些性能问题。我们在scala中使用Kafka Java API。打开和关闭消费者和生产者对象的良好做法是什么?我认为这是一个非常开放的问题,正确的答案总是取决于,但我正在尝试对此进行推理。

消费者可以长时间运行连接并保持开放吗?

当我们完成信息生成时,生产者是否应该关闭?

共有1个答案

笪欣嘉
2023-03-14

消费者可以长时间运行连接并保持开放吗?

一般来说,是的。

具体情况:取决于您的消费者配置。

如果您的消费者是消费者群体的成员,他们当然应该关闭 - 尽早触发再平衡。

如果您的消费者使用自动提交偏移量,他们仍然会保持每N毫秒提交一次(AFAIK 60k),这可能会浪费资源。

否则,他们可以留下来,但为什么要浪费资源?

当我们完成信息生成时,生产者是否应该关闭?

一般来说,是的。

这取决于你的设计,但如果你能说在某个时候你不会再发送任何消息,那么你可以关闭。这并不意味着您应该在每次发送消息后关闭并重新创建一个生成器。

 类似资料:
  • 简而言之,我如何在生产者/消费者苏德上找到相关经纪人的健康状况。

  • 本教程演示了如何发送和接收来自Spring Kafka的消息。 首先创建一个能够发送消息给Kafka主题的Spring Kafka Producer。 接下来,我们创建一个Spring Kafka Consumer,它可以收听发送给Kafka主题的消息。使用适当的键/值序列化器和解串器来配置它们。 最后用一个简单的Spring Boot应用程序演示应用程序。 下载并安装Apache Kafka 要

  • 生产者线程与消费者线程使用信号量同步 生产者线程与消费者线程使用信号量同步 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2018-08-24 yangjie the f

  • 所谓的生产者消费者模型就是 某个模块(函数)负责生产数据,这些数据由另一个模块来负责处理 一般生产者消费者模型包含三个部分 生产者、缓冲区、消费者 为什么生产者消费者模型要含三个部分?直接生产和消费不行么? 一个案例说明一切 生产者好比现实生活中的某个人 缓冲区好比现实生活中的邮箱 消费者好比现实生活中的邮递员 如果只有生产者和消费者, 那么相当于只有写信的人和邮递员,那么如果将来过去的邮递员离职

  • 一、线程间通信的两种方式 1.wait()/notify() Object类中相关的方法有notify方法和wait方法。因为wait和notify方法定义在Object类中,因此会被所有的类所继承。这些方法都是final的,即它们都是不能被重写的,不能通过子类覆写去改变它们的行为。 ①wait()方法: 让当前线程进入等待,并释放锁。 ②wait(long)方法: 让当前线程进入等待,并释放锁,

  • 我有一个消费者作为生产者消费者模式的一部分: 简化: 如果我移除 通过将线程设置为睡眠,CPU使用率攀升到极高的水平(13%),而不是0%。 此外,如果我实例化该类的多个实例,则每个实例的CPU使用率都会以13%的增量攀升。 大约每分钟(可能每30秒)都会向BlockingCollection添加一个新的LogItem,并将适用的消息写入文件。 有没有可能线程以某种方式阻止了其他线程的运行,而系统