kafka遇到的坑
文章目錄
- 一、kafka_2.11-0.11.0.2版本中advertised.listeners參數導致的大坑:
- 二、offset is out of range
- 三、java.lang.IllegalStateException: No current assignment for partition djt_db.hehe.result-0
一、kafka_2.11-0.11.0.2版本中advertised.listeners參數導致的大坑:
場景:在我們自己的服務器上安裝好單機kafka_2.11-0.11.0.2后,讓另一家公司往我們的kafka的topic上推數,因為我們兩家的的Linux服務器都是在云上,所以需要做網絡映射讓他們的服務器能夠訪問我們的服務器,能ping通也能Telnet端口9092。但是那家公司死活把數推不過來。總是報這么個錯:The ExecutionException occured : {}.
解決:修改我們服務器上kafka的config/server.properties文件advertised.listeners參數,后重啟kakfa修改的才會生效
正確的配置:advertised.listeners=PLAINTEXT://kafkahost:9092
以前導致以上報錯的配置:advertised.listeners=PLAINTEXT://我方內網實際IP:9092
在我方的Linux服務器上的/etc/hosts文件下添加一行:
我方內網實際IP kafkahost
在那家公司的Linux服務器上的/etc/hosts文件中添加一行:
我方映射給這家公司的IP kafkahost
做完以上操作后在代碼里寫bootstrapServers, "kafkahost:9092"或者bootstrapServers, "我方映射給這家公司的IP:9092"都可以運行成功
???
二、offset is out of range
當手動設置從指定的偏移量消費數據的時候,有時候指定的偏移量超出范圍會報這個錯:
2020-03-31 12:34:13.394 INFO 94001 --- [ConsumerExample] o.a.k.c.consumer.internals.Fetcher : Fetch offset 228668 is out of range for partition weishiDataOGG_append-0, resetting offset注意:在實際使用中發現這么個問題,那就是kafka中topic中的數據在設置的存儲天數到期后數據會被刪除,一開始我們的topic中有10萬條數據,后來時間到期后數據自動被刪除了,我就又重新生產了10萬條數據,本以為第二次生產的數據的offset也是從0開始的,于是我就在代碼中設置從offset為0L的地方開始消費,但是一直循環報錯:Fetch offset 0 is out of range for partition weishiDataOGG_append-0, resetting offset,后來才發現第二次生產的數據的offset并不是從0開始的,而是在以前的基礎上累加的,后來在代碼中將offset設置成了99999L就不報那個錯了。
???
三、java.lang.IllegalStateException: No current assignment for partition djt_db.hehe.result-0
??我用sparkstream連接的kafka,手動提交偏移量,保存到zk中,我的分區0消費到保存到zk中是20了,但是kafka中偏移量被另一個程序修改為起止是21了,所以消費不到報了個這個錯誤:
總結
- 上一篇: 大电流降压模块设计TPS5430
- 下一篇: 中国联通开放号码标记一键查询与清除服务