草庐IT

Kafka-eagle

全部标签

探究:kafka生产者/消费者与多线程安全

目录1.多线程安全1.1.生产者是多线程安全的么?1.1.消费者是多线程安全的么?2.消费者规避多线程安全方案2.1.每个线程维护一个kafkaConsumer2.2.[单/多]kafkaConsumer实例+多worker线程2.3.方案优缺点对比1.多线程安全1.1.生产者是多线程安全的么?        Kafka生产者是线程安全的,可以在多个线程中共享一个Kafka生产者实例。这是因为Kafka生产者实例内部使用了一些同步机制来保证线程安全,例如使用了线程安全的队列来缓存消息,使用了同步锁来保护共享资源的访问等。        同时,Kafka生产者的send()方法是非阻塞的,可以在

java - 如何为 Kafka 设置 Java 选项?

我一直在试验Kafka,并从主站点上的文档中看到,您可以为jvm设置不同的选项,例如堆大小和它使用的垃圾收集器:http://kafka.apache.org/documentation.html#java然而,它没有说明如何/在何处设置这些选项。该应用程序带有一个/config目录,其中包含许多用于配置目的的文件,但没有一个是用于Java的。它还附带一个/bin目录,其中包含一堆Kafka脚本,但同样没有真正说明如何配置Java。所以我的问题是,如何配置Kafka使用的Java选项?是通过文件完成还是有其他方式? 最佳答案 非常不

java - Apache Kafka 客户端什么时候抛出 "Batch Expired"异常?

使用ApacheKafkaJava客户端(0.9),我尝试使用KafkaProducerclass向代理发送一长串记录。.异步sendmethod立即返回一段时间,然后在短时间内开始阻塞每个调用。大约30秒后,客户端开始抛出异常(TimeoutException),并显示消息“批处理过期”。什么情况会导致这个异常被抛出? 最佳答案 此异常表明您正在以比发送记录更快的速度排队记录。当您调用send时方法,ProducerRecord将存储在内部缓冲区中以发送到代理。一旦ProducerRecord,该方法立即返回已被缓冲,无论是否已发

java - 是否可以将分区添加到 Kafka 0.8.2 中的现有主题

我有一个Kafka使用2个分区运行的集群。我正在寻找一种将分区数增加到3的方法。但是,我不想丢失有关该主题的现有消息。我尝试停止Kafka,修改server.properties文件,将分区数增加到3个,重启Kafka。然而,这似乎并没有改变什么。使用KafkaConsumerOffsetChecker,我仍然看到它只使用2个分区。Kafka我使用的版本是0.8.2.2。在0.8.1版中,曾经有一个名为kafka-add-partitions.sh的脚本,我想这可能会奏效。但是,我在0.8.2中没有看到任何这样的脚本。有没有办法做到这一点?我确实尝试过创建一个全新的主题,对于那个主题,

java - 如何在 apache kafka 中删除主题

这个问题在这里已经有了答案:DeletetopicinKafka0.8.1.1(18个回答)关闭5年前.我需要删除kafka-0.8.2.2.3中的一个主题。我已使用以下命令删除主题:bin/kafka-topics.sh--zookeeperlocalhost:2181--delete--topicDummyTopic命令执行成功,但是当我运行命令列出主题时,我可以看到主题仍然存在并且显示标记为删除。bin/kafka-topics.sh--list--zookeeperlocalhost:2181DummyTopic-markedfordeletion当我创建主题DummyTopi

docker - Kubernetes 集群中的 Kafka - 如何从 Kubernetes 集群外部发布/使用消息

我已在Kubernetes集群中部署并运行Kafka。我正在使用来自dockerhub-https://hub.docker.com/r/cloudtrackinc/kubernetes-kafka/的这张图片我的kubernetes集群中有3个kube节点。我有3个Kafka和3个zookeeper应用程序正在运行,并且我有zoo1、zoo2、zoo3和kafka-1、kafka-2和kafka-3与它们对应运行。我能够从kubernetes集群内部发布/使用,但我无法从kubernetes集群外部发布/使用,即从不属于kubernetes集群的外部机器。我可以从外部机器访问kube

docker - Docker 中的 Kafka 无法正常工作

我正在尝试将wurstmeister\kafka-docker图像与docker-compose一起使用,但我在连接所有东西时遇到了真正的问题。我检查的所有帖子或问题似乎都没有任何问题,但坦率地说我迷路了。(并且在SO中至少有两个问题试图解决这个问题)我认为问题在于我对docker的网络理解不够。那么问题来了:我可以从同一个kafka容器消费和生产,但是,当我尝试创建另一个容器(或将我的笔记本电脑与python客户端一起使用)时,我遇到了几个与advertised.host.name参数(图中这个参数是KAFKA_ADVERTISED_HOST_NAME)我已经尝试了很多方法来设置这个

Spring Boot集成Kafka动态创建消费者并实现多消费者发布订阅模型

在SpringBoot集成Kafka时,大家都知道可以使用@KafkaListener注解创建消费者。但是@KafkaListener注解是静态的,意味着在编译时就已经确定了消费者,无法动态地创建消费者。不过事实上,使用Kafka提供的JavaAPI,使用KafkaConsumer类就可以完成消费者的动态创建。我们也知道在一个消费者组中,同一条消息只会被消费一次。而动态创建消费者的情景也通常是满足动态的发布订阅模型(一个发布者,但是可能有不定量的消费者),所以在这里我们使每个动态创建的消费者的消费者组也不一样即可。下面,我们就来实现一下这个功能。1,创建消费者对象我们可以定义一个“消费者工厂”

Kafka部署安装及简单使用

一、环境准备1、jdk8+2、zookeeper 3、kafka说明:在kafka较新版本中已经集成了zookeeper,所以不用单独安装zookeeper,只需要在kafka文件目录中启动zookeeper即可二、下载地址ApacheKafka三、部署1、启动zookeeper--启动./bin/zookeeper-server-start.sh-daemonconfig/zookeeper.properties--查看是否启动成功ps-ef|grepzoo2、进入解压的kafka目录,修改/config/kafka-server的配置文件viconfig/server.properties

Kafka消费组无法消费问题排查实战

说来惭愧,将近5个月没有在CSDN发表自己的原创文章,是什么原因耽搁了,我想有些粉丝朋友应该知道一二。并不是我这段时间没有坚持学习,而是极客时间《中间件核心技术与实战》这个专栏将我的业余时间全部占据,实在无法抽出身来进行自我学习。朋友,越努力越幸运,唯有坚持不懈,我不在的这段时间,你们是否依然坚持在学习呢?持续学习,努力提升职场竞争力,更好的服务公司是我们必须要重视与坚持的,并且在我们中通,领导为我们的学习也操尽了心,为我们制定了个人成长IDP,我第三季度的重心将放在努力提升Kafka相关技能,有兴趣的朋友可以加我微信(dingwpmz),与我一起学习成长。一个测试童鞋在测试我们消息运维平台多