2012-08-29 14 views
6

ho bisogno di inviare milioni di notifica Apple Push come Urbano Dirigibile in pochi secondiCome inviare milioni di notifica Apple Push come Urbano Dirigibile in pochi secondi

ho usato il seguente

Ho diversi server dedicati, posso inviare migliaia di notifiche push in diversi secondi, ma come posso inviare milioni di notifiche push Apple come Urban Airship entro alcuni secondi?

+1

Avere più server ... –

+0

@LawrenceCherone Sì. Ho più file server, più server di database e più server memcached. –

+1

Numero di server richiesti = 1.000.000/numero massimo di notifiche per server al secondo. – Robbie

risposta

8

Ogni server ha una capacità limitata per eseguire determinate attività. Non puoi assumere che il tuo server dedicato con una configurazione xyz raggiunga ogni NFR per la tua applicazione. È necessario pianificare la capacità del server per raggiungere l'NFR dell'applicazione. Se il tuo server dedicato è in grado di inviare 10K di notifica push in 1 secondo con configurazione ottimizzata di server e applicazione e desideri ottenere 20K di notifica in 1 secondo, devi eseguire il ridimensionamento orizzontale/verticale del server.

Nel ridimensionamento orizzontale si inserisce un'altra istanza parallela e si divide l'attività tra di loro, tuttavia in verticale si scala lo stesso server per avere una configurazione superiore. Il ridimensionamento verticale non è consigliato in quanto ha un singolo punto di errore.

Affinché il problema si riduca, è necessario mettere un'altra istanza in parallelo per dividere l'attività di invio della notifica push tra di loro. Ad esempio, se si desidera inviare una notifica push 20K con un secondo per dispositivi 20K, è possibile dividere prima il primo 10 K sul primo server e il successivo 10 K con un altro. Ciò consentirà alla tua NFR di inviare notifiche push 20K in un secondo.

2

Dipende dalla larghezza di banda e dalla velocità di elaborazione del server. Un singolo server non è in grado di inviare 142857 pacchetti compreso il carico utile al secondo, ecco perché si vede un limite.

Avresti bisogno di diversi server dedicati e un server di controllo che invierà un singolo lavoro ai server APN tramite un'API interna, in questo modo il lavoro può essere distribuito.

+0

puoi condividere qualche riferimento (migliore)? –

+1

Un singolo server con quali CPU e quante schede NIC? –

3

i miei 2 centesimi.

max Apple Push payload = 255bytes

1 milione di dispositivi iOS = 1.000.000

pacchetto che in un singolo file = 255.000.000 byte = 255MB.

aprire una connessione TCP + inoltrare tutti i contenuti ai gateway APNS. Questo è il modo più veloce che potessi pensare. Pre-processare e pre-impacchettare il payload in uno o più file localmente prima di inviarli a una griglia di server APNS mirata.

Problemi correlati