java - 使用 DirectByteBuffer 的 Kafka 生产者
问题描述
在内存密集型 Java 应用程序中,让多个 KafkaProducer 实例向 KafkaBrokers 发送大型 json 字符串(1-1.5 MB),将 buffer.memory 配置为更高的值(比如说 256 MB)会触发频繁的 GC。我需要大缓冲区来弥补应用程序生成消息的高吞吐量和 KafkaProducer 向 KafkaBrokers 发送消息的速度慢之间的差距。是否存在使用直接缓冲区(堆外)而不是堆缓冲区(ByteBuffer.allocate() 调用)的 KafkaProducer 库版本。在将大消息发送给代理的情况下,这是一个合理的探索解决方案还是有其他方法可以提高性能?
解决方案
推荐阅读
- java - 使用java 8将for循环转换为流
- android - 尝试在空对象引用上调用虚拟方法 'android.os.Handler android.app.FragmentHostCallback.getHandler()'
- java - 如果您不知道某些元素是否存在,什么是好的 Selenium 策略?
- javascript - 数组是在函数中定义的,但是当返回它时,它会打印出 undefined
- html - 如何在 spring 控制器部分更改 modelandview 的视图内容?
- python - Gunicorn 粘贴选项
- swift - 如何快速识别连接的网络是开放的还是安全的?
- python - 将图像从图像字段获取到 views.py 模型
- python - 在 Python 中的列表模式中查找最小值和最大值
- python - 导入 pandas_datareader 时遇到问题