問題の説明
Sarama Go クライアントを使用すると、次の問題が発生する可能性があります。
Topic にパーティションを追加した後、クライアントは新しいパーティションを検出しないか、パーティション内のメッセージを消費しない可能性があります。 新しいパーティションからメッセージを消費できるようにするには、クライアントを再起動する必要があります。
Sarama Go クライアントの多くのプロトコルは、Apache Kafka コミュニティの標準に準拠していません。 ブローカーで例外が発生した場合、次の問題が発生する可能性があります。
クライアントで OutOfRange メカニズムがトリガーされる可能性があります。 コンシューマオフセットリセットポリシーがクライアントで
Oldest(earliest)に設定されている場合、メッセージは最も古いオフセットから再消費されます。クライアントはリバランス状態のままになる可能性があります。
解決策
できるだけ早く Sarama Go クライアントを Confluent Go クライアントに置き換えることをお勧めします。
Confluent Go クライアントのデモについては、kafka-confluent-go-demo を参照してください。
クライアントを交換できない場合は、次の操作を実行します。
本番環境では、コンシューマオフセットリセットポリシーを
Newest(latest)に設定します。 デバッグ環境またはメッセージを繰り返し消費できるその他の環境では、コンシューマオフセットリセットポリシーをOldest(earliest)に設定します。コンシューマオフセットのリセットが原因で大量のメッセージが蓄積された場合は、ApsaraMQ for Kafka コンソールで、特定の時点のオフセットにコンシューマオフセットをリセットできます。 この方法では、クライアントコードを変更したり、コンシューマグループを変更したりしてコンシューマオフセットをリセットする必要はありません。 詳細については、「コンシューマオフセットをリセットする」をご参照ください。