0

Web アプリとモバイル デバイス アプリからの要求を処理するバックエンドを構築しています。

通常の http GET および POST リクエストと比較して、TCP サーバーが適切かどうかを判断しようとしています。

使用例 1: 1. モバイル デバイス上のクライアントは、デバイス上で単語「red」の検索を実行します。

  1. サーバーに送信された単語 (JSON か TCP かは不明)

  2. red という単語がサーバーに送信され、サーバーは mysql db から色が赤のすべての行を取得します (これは 5000 件程度の結果になる可能性があります)。別のステップ 2 (おそらくここでは TCP の方が理にかなっているはずです): red という単語をキーとして構築されたハッシュマップがあり、値は red という単語を持つすべてのオブジェクトの配列へのポインターです (これはより高速な外観になると思います)稼働時間)。

  3. データが電話に送信されます (JSON またはその他の方法のいずれか、不明)。このステップについては不明です。

  4. 電話の解析など...

ユーザーがクエリを終了するまで、サーバー上で配列を維持したい可能性があります (結果をフィルタリングし続ける可能性があるため)。

この例に基づいて、私が見るべきアーキテクチャは何ですか?

どんな異なる方法でも大歓迎です。

ありがとうございました

4

1 に答える 1

1

あなたの場合、次の理由で HTTP を使用します。

  1. サービスはステートレスです。
  2. TCP を使用すると、サービスのスケールアップに問題が発生します (TCP 接続を確立するサーバーにすべてのリクエストが送信されるため)。これは、サービスがステートレスであることと関連しています。HTTP では、負荷分散の背後にサーバーを追加するだけです
  3. TCP の場合、ファイアウォールやその他の理由でブロックされる可能性のあるポートを指定する必要があります。ポート 80/8080 を使用できますが、これは良い方法ではないと思います
  4. あなたのサービスが、彼の言葉の使用タイプに応じて変更するという提案のようなものであれば、TCP/HTTP ソケットを使用することをお勧めします。
  5. TCP は、X 秒ごとにシステムの状態を報告するセキュリティ システムのように、より長期間の接続に使用されますが、これは当てはまりません。
于 2013-06-03T03:58:20.130 に答える