2017-03-17 8 views
1

私たちは、apache kafkaを使用してリアルタイム監視システムを構築する予定です。全体的な考え方は、複数のデータソースからカフカにデータをプッシュし、データ品質チェックを実行することです。このアーキテクチャにはほとんど疑問がありませんKafkaを使用した複数のデータソースによるリアルタイムストリーミング

  1. 主にJavaアプリケーション、Oracleデータベース、残りのAPI、ログファイルをApache kafkaに含む複数のソースからのデータをストリーミングする最良の方法はありますか?各クライアントの展開には、それぞれのデータソースが含まれています。したがって、カフカにデータをプッシュするデータソースの数は、顧客の数* xと等しくなります。ここで、xは、リストしたデータソースの種類です。理想的には、プッシュアプ​​ローチではなく、プッシュアプ​​ローチがベストに適しています。プルアプローチでは、ターゲットシステムは、実用的ではない様々なソースシステムの資格情報で構成する必要があります。
  2. どのように障害を処理しますか?
  3. 受信メッセージのデータ品質チェックを行うにはどうすればよいですか?例えば、特定のメッセージに必要な属性がすべて含まれていない場合は、メッセージを破棄して、メンテナンスチームがチェックするようアラートを生成することができます。

あなたのエキスパート入力をお知らせください。ありがとう!

答えて

1

私はここに最善のアプローチは、接続カフカを使用することであると思う:link が、それは、プルアプローチです: Kafka Connect sources are pull-based for a few reasons. First, although connectors should generally run continuously, making them pull-based means that the connector/Kafka Connect decides when data is actually pulled, which allows for things like pausing connectors without losing data, brief periods of unavailability as connectors are moved, etc. Second, in distributed mode the tasks that pull data may need to be rebalanced across workers, which means they won't have a consistent location or address. While in standalone mode you could guarantee a fixed network endpoint to work with (and point other services at), this doesn't work in distributed mode where tasks can be moving around between workers.ユエン

+0

私はカフカのコネクタがあろうとアプローチを接続しますが、与えられたベースプルの利点に同意しますクライアント数に応じて複数のソースから取得する必要があります。コネクターでのソース証明書の設定、クライアントの頻繁な追加や削除など、どのように対処しますか?ソースプラットフォームの管理は難しいようです。どのようにこれを効率的に処理するのですか? –

関連する問題