NJ, jenže ten jednovláknové event loop je i v javě, jen už na to nemůžu použít jdbc. Java má i asynchronní sockety, ale asynchronní jdbc se teprve dělá. Můžu použít ale asynchronní Driver, třeba PostgreSQL ho má, ale není to jdbc. Takže jen jsem chtěl říct, že pořád to raději udělám v javě než v JS.
existuje
http://docs.paralleluniverse.co/comsat/#db-access
vnitřně to používá runBlocking. Ani to jinak nejde, vždy se připojuješ přes nějaký omezený connection pool. Stále nechápeš, že nikdy nebude spuštěno 10k sql dotazů současně, ale 10k websocketových spojení není scifi.
Nie som si isty, ci rozumiete tomu, co napisal anonym. Riesenie od Quasar/COMSAT pouziva blokujuce API a nie je mozne sa v nom hooknut do jednovlaknoveho eventloopu.
runBlocking nie je problem connection poolu, ale toho, ze JDBC je blokujuce API. Mozete mat datasource aj bez connection poolu s jednym spojenim a nic to nezmeni na tom, ze JDBC je blokujuce API a bude nutne volat
runBlocking a stale sa nebudete vediet hooknut do toho eventloopu.
Ako anonym spravne napisal, k PostgreSQL existuju najmenej 2 non blocking drivery postavene na Netty, ale povedal by som, ze len tak tak ziju.
Anonym by bol urobil lepsie, keby namiesto privlastku
async pouzil
non-blocking. Async operacie sa mozu robit aj nad blokujucimi API a threadpoolom - vid. COMSAT JDBC. eventloop s non-blocking IO je trosicku ina vec. Kazdopadne, oboje sa v Jave robit da. Ten druhy case, t.j. eventloop s non-blocking IO, sa o chvilu stane main stream, kedze ho zacal tlacit Spring 5 WebFlux a reactive data (ktore logicky nezahrnaju JDBC).
Preto predpokladam, ze atraktivita
node.js pre Javistov, aspon pre tento use case, este viac.
10k websocketovych spojeni je z hladiska procesoroveho casu vascinu casu neaktivnych, kedze IO trva vecnost. Nechapem co ich robi viac ne-scifi ako 10k sql dotazov.