Ho sviluppato un'API Web REST utilizzando il modulo Servizi. Funziona bene Ho un client di quell'API con utilizzo previsto che richiede il ridimensionamento orizzontale della mia istanza di Drupal. Si noti che a causa della natura della mia API, che richiede risorse significative di CPU e GPU, non riesco a utilizzare i server cloud. Inoltre, a causa della natura della mia API, le istanze di Drupal devono essere eseguite sul sistema operativo Windows. (La mia applicazione richiede software disponibile solo su Win64.) Ora ho un server abbastanza robusto in una posizione condivisa, e per questo ambizioso client ho intenzione di ridimensionare orizzontalmente il mio hardware nel modo seguente:
- Un server CentOS che esegue HaProxy come bilanciamento del carico front-end,
- Due per iniziare, con l'aggiunta di altri se necessario, server Windows Server 2008 R2 che ospitano Drupal,
- Un server di database CentOS che fornisce un singolo database per le istanze multiple di Drupal,
- Un server di database CentOS in esecuzione in modalità di replica in caso di interruzione del server DB 1.
Le mie domande riguardano il funzionamento del bilanciamento del carico HaProxy. Suppongo che gli sessionIds creati dalle istanze di Drupal siano unici l'uno dall'altro. Il bilanciamento del carico esamina sessionId e instrada tutte le richieste allo stesso server che ha prodotto tale sessionId? Come funzionerebbe una comunicazione RAP WebAPI se il bilanciamento del carico fa sì che ogni richiesta API passi a un server diverso? Qualunque dato a cui fa riferimento WebAPI deve essere archiviato nel database perché non posso assicurare che più richieste API per la stessa risorsa vengano instradate alla stessa istanza di Drupal?