J'utilise ActiveMQ où je dois les exigences suivantesLimitations du mode de livraison non persistante d'ActiveMQ?
- Pour avoir très consommateurs rapides que mes producteurs sont déjà très rapide
- besoin de traitement à des messages de location 2K par seconde
- Pas besoin de traiter/consommer des messages à nouveau en cas de panne du serveur ou d'autres défaillances. Je peux encore déclencher tout le processus.
- a besoin pour exécuter le serveur de configuration très normale - 4GiB RAM
J'ai configuré ActiveMQ comme donné ci-dessous
- aide
non-persistent delivery mode
(vm://localhost
) (http://activemq.apache.org/what-is-the-difference-between-persistent-and-non-persistent-delivery.html) - Grâce à l'intégration de printemps pour mettre/fetch messages dans/de la file d'attente/canal.
- En utilisant
max-concurrent-consumers
avec10
fils - On suppose tous les autres configs sont par défaut avec ActiveMQ et Sprig-intégration.
Problèmes/Questions
- Je ne sais pas comment ActiveMQ stocke les messages en cas de
non-persistent delivery mode
, est-il possible que mon processus échouera avec des erreurs de mémoire une fois ma taille de file d'attente dépasse une certaine limite ? Je pose cette question parce qu'il est très difficile de tester tout le processus pour moi. Donc, je dois être conscient de la limitation avant de déclencher le processus. - Si
non-persistent delivery mode
ne suffit pas avec mes exigences ci-dessus, y at-il des conseils de réglage des performances avec lequel je peux atteindre mes exigences avecpersistent delivery mode
(tcp://
). J'ai déjà testé avec ce mode, mais il semble que les consommateurs sont très lents ici. De plus, je l'ai déjà essayé d'utiliserDUPS_OK_ACKNOWLEDGE
pour faire mon consommation rapide avecpersistent delivery mode
mais pas de chance.
NOTE: J'utilise dernière version ActiveMQ 5.14
Merci pour votre réponse @MallowFox .. pouvez-vous expliquer un peu sur 'producer-flow'. Selon ma compréhension, il est configuré automatiquement? ou devrions-nous faire quelque chose pour ralentir le débit du producteur en cas de forte charge? –
@Vishal Zanzrukia Vous avez juste besoin de définir la limite memoryUsage et la limite de tempUsage dans le fichier xml de config d'activemq. Et le producteur est automatiquement ralenti lorsqu'il y a une forte charge. – Solo