2017-09-25 14 views
0

私は、Kafka 0.11クラスターに接続しているGoアプリケーションが古い0.8.2バージョンのライブラリーを使用していたことを知りました。応答にタイムスタンプ値がありません。Kafka 0.11/Golang Saramaバージョンのサポート

私はKafka 0.11.x API /バージョンがサポートされていないことを発見しました(しかし、彼らはそれに取り組んでいます)。

私は今のところ2つの解決策があります。

まず、必要なバージョンを自分のアプリケーションに明示的に設定します。 第2は、0.10.xバージョンを最小バージョンとして使用するSaramaコードを "調整"して、すべての0.10.x API /機能を使用できるようにすることです。

なぜ私は接続しているカフカブローカーからバージョンが取得されていないのだろうかと疑問に思っていましたか?

コードからどのように動作するはずかわかりません... sarama.Config.Versionで設定または定義されているバージョンがはっきりしていますが、この値を一度更新することはできませんブローカーに接続していますか?

私は、Pythonはそれをこのようにやっていることを知っている:

from kafka import BrokerConnection 
broker=BrokerConnection("localhost",9092,0) 
broker.connect() 
broker.check_version() 

(0、11、0)

私は何をしないのですか?

答えて

0

私が行っている限り、Saramaがブローカー版の検索を単独で処理するかどうかはわかりません。

私の視点からは、あなたのようなプロデューサー/ブローカー/クライアントの設定パラメータで使用するAPIのバージョンを定義する一つの必要性:

config := sarama.NewConfig() 
config.Version=sarama.V0_10_2_0 

をまた、サラマーは0.11.0をサポートしていません。まだ(2017年9月)、最新のAPIにアクセスするには0.10.2.0を使用してください。

Finaly、ファイルShopify/sarama/utils.goを編集し、第二の溶液を使用し、最後に、あなたのバージョンを追加します。

V0_11_0_0 = newKafkaVersion(0, 11, 0, 0) 
V0_11_0 = newKafkaVersion(0, 11, 0, 0) 
minVersion = V0_11_0_0 
関連する問題