J'ai un serveur avec 48 processeurs qui hébergent une API REST Java EE 7 sur TomEE + 7.0.2.Service d'exécution géré dans TomEE
Certaines API ont besoin d'utiliser autant de CPU que possible car elles exécutent des algorithmes parallélisés. La portion parallélisée ne nécessite aucune base de données ou d'autres ressources, juste quelques manipulations lourdes dans une matrice double [] [] partagée.
Je travaille habituellement dans des contextes EJB, mais pour cette instance particulière ce n'est pas une exigence (et aussi préférable de ne pas l'être).
Jusqu'à présent, j'utilisais pour
ExecutorService pool = Executors.newFixedThreadPool(maxThreads);
instancier un exécuteur testamentaire, mais comme cela semble engendrer des fils réels au niveau du système d'exploitation Je ne suis pas un grand fan de celui-ci - après une certaine charge JMeter tester même conduit à un point, où l'ensemble du bash a été bloqué et je ne pouvais même pas SSH le serveur jusqu'à redémarrage dur. Je suis tombé sur le concept de "Managed Executor Service", mais je ne trouve pas de tutoriel/exemple en ligne sur la manière de l'utiliser (et aussi de le configurer).
Pourriez-vous partager vos idées sur ce qui suit?
a) Comment configurer un pool de threads dans TomEE (par exemple via server.xml, context.xml ou tomee.xml), des exemples de code seraient appréciés?
b) Existe-t-il un moyen d'utiliser simplement un pool de threads par défaut (et est-ce assez astucieux pour ne pas avoir besoin de réglage, sinon, où pourrais-je commencer à faire ça)?
c) Comment puis-je rechercher le pool de threads dans Java puis - préféré via la recherche JDNI? D) Si une fois j'ai décidé de faire de cette ressource une partie d'EJB, à quoi ressemblerait le code pour Injection?
Mon contexte d'application est spécifié comme "myContext" dans server.xml, donc si vous fournissez des exemples, pourriez-vous indiquer à quoi ressembleront les chaînes de recherche, exactement?
À part cela, j'ai une installation très simple de TomEE + 7.0.2, je n'ai touché à aucune configuration jusqu'à présent.
Merci beaucoup pour votre aide!
Daniel