6

数秒以内にアーバンエアシップのように何百万ものAppleプッシュ通知を送信する必要があります

私は以下を使用しました

私は複数の専用サーバーを持っており、数秒で数千のプッシュ通知を送信できますが、Urban Airship のような数百万の Apple プッシュ通知を数秒で送信するにはどうすればよいですか?

4

3 に答える 3

9

すべてのサーバーには、特定のタスクを実行する能力が限られています。一部の xyz 構成を備えた専用サーバーがアプリケーションのすべての NFR を達成するとは限りません。アプリケーションの NFR を達成するには、サーバーのキャパシティ プランニングを行う必要があります。専用サーバーがサーバーとアプリケーションの構成を最適化して 1 秒で 10K のプッシュ通知を送信でき、1 秒で 20K の通知を達成したい場合は、サーバーの水平/垂直スケーリングを行う必要があります。

水平スケーリングでは、別の並列インスタンスを配置してそれらの間でタスクを分割しますが、垂直スケーリングでは、同じサーバーをスケーリングしてより高い構成にします。単一障害点があるため、垂直スケーリングはお勧めできません。

問題を拡大するには、別のインスタンスを並行して配置して、プッシュ通知送信タスクをそれらの間で分割する必要があります。たとえば、20K デバイスに対して 1 秒で 20K のプッシュ通知を送信する場合、最初の 10K を最初のサーバーに分割し、次の 10K を別のサーバーに分割できます。これにより、1 秒で 20K のプッシュ通知を送信する NFR が達成されます。

于 2012-08-29T05:53:36.287 に答える
4

私の2セント相当。

最大 Apple プッシュ ペイロード = 255 バイト

100 万台の iOS デバイス = 1,000,000

1 つのファイルにパッケージ化 = 255,000,000 バイト = 255MB。

TCP 接続を開き、すべてのコンテンツを APNS ゲートウェイに転送します。それが私が考える最速の方法です。対象の APNS サーバー グリッドにペイロードをディスパッチする前に、ペイロードをローカルで前処理して 1 つまたは複数のファイルに事前にパッケージ化します。

于 2012-09-07T10:02:10.707 に答える
2

サーバーの帯域幅と処理速度によって異なります。1 台のサーバーでは、1 秒間にペイロードを含む 142857 個のパケットを送信できないため、制限が発生します。

複数の専用サーバーと、内部 API を介して単一のジョブを APN サーバーに送信する制御サーバーが必要になります。これにより、ジョブを分散できます。

于 2012-08-29T05:55:23.137 に答える