With that amount of user concurrency you need to have as much as ram and cpu cores that you could get, let's said that you have 32gb, and 10 cpu cores, you need to config Odoo to use this resources as best as it could using workers that enables multiprocesing. The database server is in the same server or in another? if it's in the same server you need to separate an amount of ram out of the Odoo resources calculations for setting PosgreSQL database memory tunnings. Also I recomends a pool strategy in front of the database server like pg_bouncer that will protect your PosgreSQL instance from get out of connection slots.
For resource config in Odoo such as ram and cpu cores you need to determine what number of workers do you need(in others servers like gunicorn the formula is workers = cores * 2 + 1, Odoo is very similar but thats ok if you use workers = cores, better than no workers) and what amount of ram min/max you will asign to every worker( default to 640mb), this is important take an example:
#workers = cores * 2 + 1 and cores is 10 then
workers = 21
ram = 640 *21 = 13gb ... using default workers ram value min
Another consideration is that if you have a process in Odoo that consume more ram than the worker you will experience MemoryError in that process, then you need to increase workers ram or optimize the process(usually writing data that you have in memory to disk)
If you set a load balancer for Odoo you need to take sessions into account and share session data between Odoo instances, I answer a question here in the forum about that using Redis as session store
This are my 2 cents
Hope some of this info helps