コンフルエントなカフカで多くのアーティファクトを読んだ後、通常のチャットシステムを実装しようとします。しかし、私はいくつかの構造設計を行う際にいくつかの問題に出会った。 私のデータのデータベースとしてmysqlを使用する場合、ユーザテーブルのuser_id、メッセージテーブルのmessage_idなどの意味のあるすべてのメッセージにid
を与えることができます。モデルテーブルにIDを与えた後、クライアントとサーバーがコミュニケーションを取るのは非常に便利です。 しかし、Kafkaストリームでは、KTableですべての意味のあるモデルに一意のIDを与えるにはどうすればよいですか?それとも本当に私がこれをする必要がありますか?カフカストリームを使用しているときにメッセージのIDを生成する方法は?
0
A
答えて
0
多分私は自分自身の質問に答えることができます。
mysqlでは、すべてのデータが1つの場所に移動し、新しいIDが自動的に割り当てられるため、sequenceIdを直接使用できます。テーブルが大きくなりすぎたときしかし、我々はまた、自動これらのテーブルにIDを生成しているため0
から開始され、各レコードの一意のIDを再生成するために、いくつかの小さなtables.Inにそのような場合に、テーブルを分割するために、我々はまた、必要がある必要がありますカフカでも同じかもしれません。 kafkaに1つのパーティションしかない場合、すべてのメッセージが1つの場所に移動するので、kafkaが生成したIDのidを使用することができます。したがって、それらは重複しません。しかし、より多くのパーティションが必要な場合、異なるパーティションから生成されたこれらのIDがグローバルに固有ではないことにも注意する必要があります。
私たちがするべきことは、私自身のためにIDを生成することです。 UUIDはこれを行うための速い方法ですが、私は数字を持っています。少しアルゴリズムを使ってこれを実装することができます。たぶん、分散環境には、このような構造を使用します。
[NODEID +スレッドID + CURRENT_TIME + auto_increased_number]
関連する問題
- 1. DataImportHandlerを使用してIdを生成する方法は?
- 2. MongoDB/Node.js/Mongooseを使用してクライアントデータベースのランダムIDを生成する方法は?
- 3. Objectify - Longが使用されているときにエンティティの自動生成IDを取得する方法
- 4. Axis 1.4 wsdl2java生成クライアントを使用してSOAPメッセージを取得する方法
- 5. GUIを使用してID列を作成する方法は?
- 6. Phonegabを使用しているときにビデオを再生する方法は?
- 7. Faceletタグで既定の生成IDを使用する方法
- 8. ルックアップテーブルを使用して、タイプと親子IDを作成してIDを作成する方法は?
- 9. nose2を使用してテストを実行しているときに.pycファイルの生成をミュートする方法
- 10. (id *)変数または(id *)引数を使用してメッセージを送信する正しい方法
- 11. HTML5とJavaScriptを使用してPDFを生成する方法
- 12. EclipseLinkを使用しているときにスクリプトを生成
- 13. カフカストリームを使用してelasticsearchイベントに基づくテーブルを作成する
- 14. XMLSerializerを使用してXMLを生成する方法は?
- 15. LLVMを使用してコールグラフを生成する方法は?
- 16. WPを使用してカスタムスライダを生成する方法は?
- 17. loadUIを使用して負荷を生成する方法は?
- 18. log4jコモンズロギングを使用しているときにsocketappenderがメッセージを生成しない
- 19. Django:django.poからJavaScript(djangojs)の翻訳メッセージを生成/使用する方法は?
- 20. WebApiコントローラをテストするときにAsp.netユーザーIDを生成する方法
- 21. カウント手法を使用して一意のint IDを生成する方法はありますか?
- 22. oracle 10gデータベースに挿入する方法とストアドプロシージャを使用して生成されたIDを返す
- 23. メッセージとバックトレースを使用して手動で例外を作成する方法
- 24. RedirectToActionが使用されたときに成功メッセージを表示する方法
- 25. hive/spark-sqlを使用して大きなデータセットを生成する方法は?
- 26. パブリッシャーを使用してメッセージを生成するには(reactive-kafkaで)?
- 27. JDBCとHSQLDBを使用して以前に自動生成されたPK ID値を取得する方法
- 28. Javaを使用してこのタイムスタンプを生成する方法
- 29. Firebaseでプッシュメソッドを使用する際に一意のIDを生成しない方法は?
- 30. iChatとAppleScriptを使用してメッセージを送信する方法
この質問は非常に広いです。ランダムな 'UUID'を生成するのに十分ではないでしょうか? https://docs.oracle.com/javase/7/docs/api/java/util/UUID.html –
ランダムなUUID Idはこれを行う方法ですが、mysqlのようなシーケンス番号が必要な場合はどうすればいいですか?この?私は、メッセージにIDを与える標準的な方法がカフカストリームであるかどうかを知りたいですか?一方、uuidはキーが長すぎ、生成が少し遅いです。 – Frio