protobufでエンコードされたメッセージを使用して、kafka/samzaジョブのパイプラインを処理します。特定のデータセットではパイプラインがかなり長くなる可能性があります。パイプラインの各ステージにタイムスタンプ/ IDを追加して、効率とサービスの状態を監視する必要があります。シリアル化されたメッセージを別のprotobufメッセージに挿入できますか?
追加情報は、touchpointsというスキーマの繰り返しフィールドに追加されます。明らかに、java/samzaでメッセージをデコードすると、追加のメッセージを追加してもう一度シリアライズすると、メッセージのサイズとともに増加するオーバーヘッドが発生します(いくつかの場合、デシリアライズ時間が長くなります)。パイプの一部は、キーをデシリアライズしなくてもよいため、これらのオーバーヘッドが少なくて済みます。
デシリアライズせずに既存のメッセージに2番目のシリアライズされたメッセージを挿入することは可能ですか?そうすることは非常に悪い習慣になるでしょう(私は思うにすぎません)。メッセージパス/時刻を監視するための逆シリアル化/追加/シリアル化
メッセージサイズを忘れてしまいますいくらか問題です。メッセージが持つ可能性のあるステージの数がわからないため、固定値が有効かどうかはわかりません。将来的にはlibのための良い将来のプロジェクトを作りますが、将来私はおそらくそれに戻ってくるでしょう。情報のための乾杯! –