
kafka
文章平均质量分 69
russle
Java开发工程师
**注意事项**:本博客所有代码是为了介绍相关内容而编写或者引用的,示例代码并非可直接用于生产的代码。仅供参看而已。
展开
-
Kafka消息可靠性配置
Kafka发送消息是异步的,因此如果没有设置异步回调异常处理,很容易导致消息丢失而且系统不知道的情况的。 因此我们在业务有需要的情况下,配置好消息的可靠性参数。主要配置以下参数block.on.buffer.full = trueacks = all or -1retries = Integer.MAX_VALUEmax.in.flight.requests.per.connection...原创 2019-12-01 10:20:03 · 1428 阅读 · 0 评论 -
Kafka集群扩容
Kafka集群的服务发现是有zk实现的,因此想kafka集群添加新的broker就非常容易。我们只需要为新的broker设置一个唯一的broker.id, 然后启动新增的kafka就行。Kafka集群会自动发现新增的broker并同步原数据,包括当前集群有哪些topics以及topics的分区信息等。但是我们需要的注意的一点,新增的broker不能分担之前已经创建的topic的负载,必须手动执行...原创 2019-11-30 20:28:35 · 5465 阅读 · 0 评论 -
Kafka Stream简单示例(一)
最近想统计一些消息数据,原计划接收kakfa消息后自行统计然后存入数据库(统计相对比较简单,所以没有考虑使用Apache Storm), 突然想起来Kafka已经提供Kakfa Stream功能,于是开始看Kafka Steam。 下面的例子非常简单,只是在Kafka提供的例子上做了一点修改。添加依赖因为我们使用的Kafka Stream所以添加的依赖是kafka-streams, 不是以前经...原创 2019-03-03 18:10:42 · 17316 阅读 · 4 评论 -
Kafka Stream简单示例(二)---聚合 Aggregation--统计总和
在《Kafka Stream简单示例(一)》基础上,我们稍作修改实现一个基于固定时间窗口统计综合的例子。项目需求:统计每30秒内,按照key分组的总值。topic收到的消息格式:key:a, value:1, 例如如果kafka topic 30秒(Tumbling Window, 也就是固定窗口), 收到消息key:a, value:1, key:b, value:5, key:a, val...原创 2019-03-08 23:36:07 · 8143 阅读 · 5 评论 -
Kafka Stream简单示例(三)---自定义Serde
本篇是在《Kafka Stream简单示例(一)》 和《Kafka Stream简单示例(二)—聚合 Aggregation–统计总和》基础上成文的,建议先阅读前两篇,以便清楚上下文关系需求背景。前面两篇的代码中,很多人看到最终的计算结果是通过Serdes.Long()或者 Serdes.String()像是写入到topic中。于是有人问,能否将计算结果按照自定义格式写入topic中?比如自定义...原创 2019-03-09 14:49:42 · 3432 阅读 · 0 评论 -
Kafka Stream简单示例(四)---定义更通用的Serde
本篇是在《Kafka Stream简单示例(一)》 和《Kafka Stream简单示例(二)—聚合 Aggregation–统计总和》 以及《 Kafka Stream简单示例(三)—自定义Serde》基础上成文的,建议先阅读前三篇,以便清楚上下文关系需求背景。第三篇 《Kafka Stream简单示例(三)—自定义Serde》中,我们自定义了Statistic类的Serializer和Des...原创 2019-03-10 11:15:23 · 3172 阅读 · 1 评论 -
Flink kafka简单示例(一)统计topic中的单词后写入新的topic
最近在调研各种计算框架,在看完Kafka Stream之后也顺便看了一下最流行的Flink,结合我们业务场景试验了一些小demo。下面给出一个简单示例,基本和官方类似。只是使用了最新的版本Flink kafka connector以及最新版本的Flink 1.7.2(截止2019年2月)示例简要介绍第一步将kafka topic作为source添加到DataStream第二步读取topic的...原创 2019-03-15 23:44:25 · 3867 阅读 · 1 评论 -
Flink 远程提交任务 java.lang.ClassCastException LinkedMap
问题来源Flink本地提交任务运行正常,然后打包成jar在远程的Flink上运行失败。注意:打包的jar不能通过java -jar 运行,即使你的jar和Flink在一台机器上。例如Flink安装在E:\software\flink-1.7.2-bin-scala_2.12\flink-1.7.2,jar放在E:\software\flink-1.7.2-bin-scala_2.12\...原创 2019-05-08 11:54:58 · 6419 阅读 · 3 评论 -
转载--Kafka创建Topic时如何将分区放置到不同的Broker中?
本来想自己写一篇,结果发现这篇写的不错,就直接转载,原文地址转载自过往记忆(https://www.iteblog.com/)本文链接: 【Kafka创建Topic时如何将分区放置到不同的Broker中】(https://www.iteblog.com/archives/2219.html)原文熟悉 Kafka 的同学肯定知道,每个主题有多个分区,每个分区会存在多个副本,本文今天要讨论的...转载 2019-07-20 21:33:56 · 1551 阅读 · 0 评论 -
Windows上启动Kafka注意事项之错误: 找不到或无法加载主类 Files\Java\jdk1.8.0_161\lib;D:\Program
问题原有今天为了方便测试直接在笔记本Windows上启动了kafka,结果报如下错误E:\software\kafka_2.12-1.0.0\bin\windows>kafka-server-start.bat …\config\server.properties错误: 找不到或无法加载主类 Files\Java\jdk1.8.0_161\lib;D:\Program问题分析图上...原创 2019-01-25 23:24:03 · 4041 阅读 · 0 评论 -
Kafka如何获取topic最近n条消息
问题来源项目运行中我们经常需要诊断个个环节是否正确,其中到kafka就需要查看最新的消息到达kafka没有,达到的内容是什么,这就需要查看kafka指定topic的最近的n条消息(将kakfa消息全部打印出来非常耗时而且不必要)。当然我们可以使用第三方提供的kafka工具查看,可是使用这些工具耗时费力而且不能很好集成到项目中。备注:第三方工具包括kakfa命令行工具一起其他第三方的工具。大体...原创 2019-01-20 13:42:42 · 19690 阅读 · 1 评论 -
kakfa如何查询指定消费组lag
问题来源:实际项目中,我们会遇到kafka消费不及时,系统发现最新的数据一致无法出现,这时候通过其他kafka工具发现原来指定的消费组lag太大,也就是我们系统要么出问题,要么需要启动更多的实例加快消费消息。每次通过kafka工具去查询lag基本都是手工而且耗时且慢,能否在自己的系统中集成查询指定消费组lag的功能,然后出现问题是可以管理界面中迅速查看lag呢?答案是当然可以。 kafka提供了...原创 2019-01-20 10:53:11 · 2314 阅读 · 0 评论 -
Spring Kafka 教程 – spring读取和发送kakfa消息
Apache Kafka, 分布式消息系统, 非常流行。Spring是非常流行的Java快速开发框架。将两者无缝平滑结合起来可以快速实现很多功能。本文件简要介绍Spring Kafka,如何使用 KafkaTemplate发送消息到kafka的broker上, 如何使用“listener container“接收Kafka消息。1,Spring Kafka的组成 这一节我们首先介绍Sprin...原创 2018-05-13 12:17:22 · 25626 阅读 · 5 评论 -
Kafka启用SASL_PLAINTEXT动态配置JAAS文件的几种方式
Kafka是广泛使用消息服务,很多情况下关于认证部分我都是默认的配置,也就是不需要用户名/密码,也不配置证书。在内网或者在项目组内部可以,但是设计的跨部门时一般处于安全考虑都需要加上认证,防止kafka被误用,产生大量垃圾信息,干扰了正常业务的运行。Kafka提供的多种认证方式,比如SASL, 本文主要介绍启用了SASL_PLAINTEXT时,如何在kafka client配置jaas文件,以...原创 2018-07-14 10:20:50 · 25927 阅读 · 8 评论 -
Spring Boot 中使用@KafkaListener并发批量接收消息
kakfa是 我们在项目开发中经常使用的消息中间件。由于它的写性能非常高,因此,经常会碰到Kafka消息队列拥堵的情况。碰到这种情况时,有不能直接清理整改消息队列,因为还有别的服务正在使用该队列。因此只能额外启动一个相同名称的consumer-group来加快消息消费(经测试,如果该topic只有一个分区,实际上再启动一个新的消费者作用不到)。具体代码在这里,欢迎加星号,fork。官方文档......原创 2018-07-28 10:53:37 · 139817 阅读 · 33 评论 -
如何彻底删除Kafka中的topic (marked for deletion)
工作中因为个中原因可能需要彻底清理一下kafka topic,那么如何彻底删除topic?方法一(配置delete.topic.enable=true) 修改kafaka配置文件server.properties, 添加delete.topic.enable=true,重启kafka,之后通过kafka命令行就可以直接删除topic 通过命令行删除topic: ./bin/kaf...原创 2018-09-28 12:59:23 · 26543 阅读 · 8 评论 -
Kafka动态调整topic分区partition
我们在使用kafka时,初期创建时所指定topic属性需要修改,如何动态修改kafka属性?kafka提供了命令行工具—kafka-topics.sh.kafka-topics.sh工具介绍kafka-topics.sh工具也是我们用来创建topic、查看topic详情的工具。直接运行kafka-topics.sh可以产出它是用来创建、删除、查看以及更新topicroot@ubuntu......原创 2018-10-13 14:46:36 · 65233 阅读 · 1 评论 -
kafka报Commit cannot be completed since the group has already rebalanced and assigned the partitions
问题描述:新版本的kafka消息处理程序中,当消息量特别大时不断出现如下错误,并且多个相同groupId的消费者重复消费消息。2018-10-12 19:49:34,903 WARN [DESKTOP-8S2E5H7 id2-1-C-1] Caller+0 at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator$...原创 2018-10-13 17:57:31 · 12699 阅读 · 2 评论 -
Kafka动态调整topic副本因子replication-factor
实际项目中我们可能在创建topic时没有设置好正确的replication-factor,导致kafka集群虽然是高可用的,但是该topic在有broker宕机时,可能发生无法使用的情况。topic一旦使用又不能轻易删除重建,因此动态增加副本因子就成为最终的选择。原因分析:假设我们有3个kafka broker分别brokerA、brokerB、brokerC.当我们创建的topic有3个...原创 2018-10-26 22:57:34 · 30572 阅读 · 5 评论 -
java.lang.VerifyError: Uninitialized object exists on backward branch 209
今天试着使用新版本的kafak 1.1.1。 下载了kafka_2.12-1.1.1。 zookeeper启动正常,但是kafka启动失败,错误信息如下C:\H\software\kafka_2.12-1.1.1\bin\windows>kafka-server-start.bat ..\..\config\server.properties[2018-12-11 21:13:46,...原创 2018-12-11 21:57:45 · 9636 阅读 · 7 评论 -
Storm学习笔记(一) 安装配置和启动
Storm学习笔记(一) 安装配置和启动本文比较简单,主要介绍storm的安装,配置和启动命令,之后的系列会介绍如何简单示例,以及如何与kafka工作。storm的安装storm基本配置(非集群配置)storm启动命令storm的安装 storm 安装单机版本比较简单,只需要JDK(至少是jdk7)和zookeeper即可。 我们下载了jdk-8u171-li...原创 2018-05-06 18:46:35 · 1145 阅读 · 0 评论