Izaberi najprostije rešenje koje zadovoljava tvoje potrebe.
Ako ipak budeš hteo da optimizuješ server i nateraš ga da obrađuje što veći broj zahteva onda ti računica sa količinom podataka koja prolazi kroz mrežu i nije baš pametna jer zanemaruješ vreme obrade zahteva i vreme čekanja da nešto "ode" kroz mrežu.
Ukoliko praviš queue zahteva na klijentskoj strani onda će obrada jednog zahteva izgledati ovako:
1. ConnectionManager skida zahtev sa queue-a
2. Šalje zahtev preko konekcije
3. Čeka odgovor
4. Vraća odgovor klijentu
Mrežni saobraćaj bi postojao samo u fazama 2 i 3, a čak i tom prilikom mreža ne bi bila u potpunosti opterećena. Optimalno rešenje je ono koje bi uskladilo mogućnosti servera da procesira zahteve i mreže koja bi radila prenošenje zahteva i odogovora.
Nije lako odrediti optimalan broj konekcija jer zavisi od kapaciteta mreže i procesorske moći tvoga servera, a i opterećenje servera drugim poslovima koje obavlja neće biti jednako u svakom trenutku vremena. Uradi mali eksperiment tako što ćeš izmeriti vreme koje je serveru potrebno da obavi procesiranje npr. milion poruka, variraj broj konekcija u pool-u i uvidećeš ogrnomne razlike u potrebnom vremenu. Siguran sam da je rešenje sa jednom konekcijom loše.
U svakom slučaju, prepusti kontrolu mrežnog saobraćaja TCP protokolu, nije to tvoj posao