私の名前はSergeyKalinetsです。ParimatchTechのアーキテクトです。この出版物では、Kafkaでのメッセージ検索の分野での経験を共有したいと思います。
当社にとって、Kafkaはマイクロサービスが情報を交換するための中枢神経系です。メッセージは、入力から出力まで、メッセージをフィルタリングして変換し、あるトピックから別のトピックに転送する12のサービスを通過できます。これらのサービスはさまざまなチームによって所有されており、特定のメッセージに何が含まれているかを確認すると非常に役立ちます。これは、何かが計画どおりに進まない場合に特に興味深いものです-すべてがどの段階でカボチャに変わったかを理解することが重要です(これが二度と起こらないように、誰がカボチャにそれを与える必要があります)。鳥瞰図から見ると、解決策は簡単です。kafkaから関連するメッセージを取得し、それらの何が問題になっているのかを確認する必要があります。しかし、いつものように、興味深いのは細部から始まります。
多くの人が考えて使用しているように、kafkaは単なるメッセージブローカーではなく、分散ログでもあるという事実から始めましょう。これは多くのことを意味しますが、私たちにとって興味深いのは、受信者がメッセージを読んだ後、メッセージがトピックから削除されないことです。技術的には、いつでもメッセージをもう一度読んで、中身を確認できます。ただし、Kafkaからは順番にしか読み取れないため、状況は複雑になります。メッセージが必要なオフセット(簡単にするために、これはトピックの序数です)を知る必要があります。開始点として時間を指定することもできますが、それでもすべてのメッセージを順番に読むことしかできません。
, , , , . , id=42, , (playerId: 42), , , .
MySQL MSSQL, , Kafka ( ) .
. , . , « » « » — .
, , , .
, ?
Kafka Tool
( https://www.kafkatool.com/features.html)
, , GUI . , . , . , Kafka Tool , . ( ): «Not great not terrible».
, , . .
Kafka Console Consumer
, . . Kafka, JVM , Java. , Kafka Tool, Java — docker:
, docker run --rm -it taion809/kafka-cli:2.2.0, « , , , , , ».
, , , . — , .
Kafkacat
, , . , , kafka-console-consumer ( ).
10 messages ( JSON):
- ., , kafkacat .
( , ):
Kafka — Robin Moffatt. — kafkacat Kafka, kafkacat, . , , . .
. . , — - grep .
, kafkacat Avro , protobuf — .
Kafka Connect + ELK
, . — . QA ( 90% ) Kafka Tool, — . , Kibana, UI Elasticsearch. Kibana QA . « , Kibana». , , , — Kafka Connect.
Kafka Connect — Kafka . , ( ?) Kafka . , — Connect JSON. «» , , — , , , — Kubernetes.
Kafka Connect REST API, c , Kafka. , Elasticsearch :
HTTP PUT Connect, , , ElasticSinkConnector, Elastic.
, , , . )
. , , , , - Elasticsearch.
. , , . Kafka , . ?
4 . , . , .
— .
Elasticsearch , . . / . — .
, Kibana , , . Kafka. , , UTC . , Elasticsearch timestamp, , index template, « — »:
, , , .
, , , , , Kibana, .
, Kafka Connect . , , , , . Kafka. — Kafka Elasticsearch. Elasticsearch, id .
. , - , — ? - , -, — , )