java – kafka生产者非常慢
发布时间:2020-12-15 04:49:17 所属栏目:Java 来源:网络整理
导读:我是卡夫卡的新人,我有一个我无法解决的问题. 我已经在我自己的计算机上安装了Kafka和Zookeeper(不是在Linux中),我创建了一个主题包含多个分区(在6到12个分区之间播放)的代理. 当我创建消费者时,他们完美地工作并且阅读速度很快,但是在引用制作人的时候,我创
我是卡夫卡的新人,我有一个我无法解决的问题.
我已经在我自己的计算机上安装了Kafka和Zookeeper(不是在Linux中),我创建了一个主题包含多个分区(在6到12个分区之间播放)的代理. 当我创建消费者时,他们完美地工作并且阅读速度很快,但是在引用制作人的时候,我创建了一个可以在许多网站上看到的简单制作人.生产者在循环内部并发送许多短消息(大约2000条非常短的消息). 我可以看到消费者非常谨慎地阅读2000条消息,但是生产者每秒或多或少地发送140或150条消息给代理.正如我之前所说,我正在使用自己的笔记本电脑(只有1个磁盘),但是当我每秒读取大约数百条消息时,我认为有些东西我忘记了,因为我距离它还很远. 如果我使用更多的生产者,结果会更糟. 在同一个节点或类似的东西中有更多经纪人的问题吗?这个问题在我的工作中被强加给了我,我没有更好的计算机的可能性. 创建生产者的代码是 public class Producer { public void publica(String topic,String strKey,String strValue) { Properties configProperties = new Properties(); configProperties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092"); configProperties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,LongSerializer.class.getName()); configProperties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName()); KafkaProducer<String,String> producer = new KafkaProducer<String,String>(configProperties); ProducerRecord<String,String> rec = new ProducerRecord<String,String>(topic,strValue); producer.send(rec); } } 并且发送消息的代码是(部分): Producer prod = new Producer(); for (int i = 0; i < 2000; i++) { key = String.valueOf(i); prod.publica("TopicName",key,texto + " - " + key); // System.out.println(i + " - " + System.currentTimeMillis()); } 解决方法
您可以创建一次Kafka制作人,并在每次需要发送消息时使用它:
public class Producer { private final KafkaProducer<String,String> producer; // initialize in constructor public void publica(String topic,String strValue) { ProducerRecord<String,strValue); producer.send(rec); } } 另请参阅here提供的生产者和代理配置.有几个选项可供您根据应用程序的需求进行调整. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 如何从控制台接受用户数据
- 多线程 – 处理长时间运行的Hibernate事务中的死锁
- java – Selenium WebDriver – 如何控制运行测试用例的速度
- java – logback – 无行结束分隔符
- 在java中连接一些.txt文件[已关闭]
- java – 使用MatOfKeyPoint和feature2d检测的Android OpenC
- [emailprotected]定时任务、整合jdbcTemplate、mybatis区分
- 为什么Java中的switchcase语句这样工作?
- 对Service返回的结果是否要打日志,应该打什么样的日志,为
- sharding JDBC 不支持批量导入解决方法
推荐文章
站长推荐
热点阅读