Ahoj,

Ja používam, knižnicu Netty https://netty.io/ a serializáciu mám urobenú cez https://github.com/RuedigerMoeller/fast-serialization.

Dlho som testoval rôzne možnosti a toto vychádza najlepšie. Ďalšia výhoda je, že keď to beží na Linuxe dá sa zapnúť Epoll (EpollEventLoopGroup) a je to o dosť výkonnejšie ako Javácke NIO.

Mám na tom postavený Scada systém, v reále tam býva pripojených cez 20 klientov a každému sa streamuje cca. 200KB/s. (cca. 24000 meraní) Postavené je to presne ako píšeš, po pripojení dostane klient obraz všetkých meraní a potom mu už chodia len zmeny. Frontu mám urobenú tak, že keď linka nestíha začne zahadzovať zmeny, ktoré nestíha posielať..

Arsi



------------------------------------------------------------------------

*From:* Ing. Rastislav Siekel
*Sent:* Thursday, November 16, 2017 10:01AM
*To:* Konference
*Subject:* Ako posielať veľké dáta - REST, alebo JMS, ...


Ahojte Javisti,


chcel by som sa spýtať, či má niekto praktické skúsenosti s posielaním veľkého množstva dát ce REST alebo JMS, alebo inak.


Máme aplikáciu, ktorá posiela zmeny dát pomocou JMS. Potrebujeme dorobiť, aby klient pri inicializácii dostal všetky dáta a potom bude dostávať už len zmeny.

Napadlo nám viacero riešení:

1. Použiť REST. Ale príprava takého množstva dát môže byť dlhá a môže
   nastať timeout. Preto môžeme posielať dáta po stránkach, kde v
   každej stránke bude URL na nasledujúcu stránku. Napr. ako tu:
   https://stackoverflow.com/questions/13872273/api-pagination-best-practices.
   Tam môže nastať problém čo s dátami, ktoré sa zmenia medzitým.
   <https://stackoverflow.com/questions/13872273/api-pagination-best-practices>
2. Použiť JMS - klient si pripraví dočasnú frontu a server mu tam dáta
   pošle cez JMS. Po odoslaní dát sa fronta zruší. Tam je potrebné mať
   JMS klienta na oboch stranách, ako je to popísané napr. tu:
   
http://activemq.apache.org/how-should-i-implement-request-response-with-jms.html


Nemáte s tým niekto praktické skúsenosti? Použili ste REST alebo JMS, alebo niečo úplne iné?


Vďaka za každý názor,

Rastislav "Bedo" Siekel.









Odpovedet emailem