亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為Kafka生產者選擇鍵和偏移

如何為Kafka生產者選擇鍵和偏移

開滿天機 2021-05-05 13:45:24
我在這里。在遵循代碼的同時。我想出了兩個問題密鑰和偏移量是否相同?根據Google的說法,偏移量:一個Kafka主題會在存儲它們的一組分布式分區中接收消息。每個分區都按順序維護已收到的消息,其中它們由偏移量(也稱為位置)標識。似乎兩者對我來說都非常相似。由于偏移量在分區中保持唯一的消息:生產者根據記錄的鍵將記錄發送到分區為生產者選擇鍵/偏移的最佳方法是什么?對于我上面提供的示例,他們選擇了時間戳作為Key和offset。這始終是最好的建議嗎? class IRCMessageListener extends IRCEventAdapter {    @Override    public void onPrivmsg(String channel, IRCUser u, String msg) {        IRCMessage event = new IRCMessage(channel, u, msg);        //FIXME kafka round robin default partitioner seems to always publish to partition 0 only (?)        long ts = event.getInt64("timestamp");        Map<String, ?> srcOffset = Collections.singletonMap(TIMESTAMP_FIELD, ts);        Map<String, ?> srcPartition = Collections.singletonMap(CHANNEL_FIELD, channel);        SourceRecord record = new SourceRecord(srcPartition, srcOffset, topic, KEY_SCHEMA, ts, IRCMessage.SCHEMA, event);        queue.offer(record);    }因為我實際上是在嘗試創建自定義的Kafka連接器,以從3rd Party WebSocket API獲取數據。API發送給定鍵值的實時數據流消息。所以我想到了將那個Key用作我的PartitionKey以及Offset。但是需要確保我對自己的想法是正確的。
查看完整描述

2 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

密鑰是可選的元數據,可以與Kafka消息一起發送,默認情況下,它用于將消息路由到特定分區。例如,如果你發送消息與鍵?,到一個主題mytopicp分區,然后進入到分區哈希(?)%pmytopic。它與分區的偏移量沒有任何關系。使用者使用偏移量來跟蹤分區中最后讀取的消息的位置。在您的情況下,如果時間戳是相當隨機分布的,那很好,否則在將其用作鍵時可能會導致分區不平衡。


查看完整回答
反對 回復 2021-05-19
  • 2 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號