Actualmente estoy trabajando en la función de limitación de ancho de banda (no me pregunte por qué, no es mi decisión) para aplicaciones que usan JMS (Spring framework JMS y Active MQ) para enviar mensajes con payload entre servidor y clientela.Tamaño de mensaje JMS
Encontré muchos métodos de aceleración para limitar los mensajes JMS entrantes (pero ninguno de ellos se basa en la carga de ancho de banda real), sin embargo, no encontré ninguna forma posible de limitar el flujo de mensajes salientes. Así que decidí escribir Leaky bucket algorithm por mi cuenta.
¿Hay alguna forma de obtener el tamaño del mensaje JMS? Aparte de aplicación 'sizeof' en Java (In Java, what is the best way to determine the size of an object?)
Por qué no limitar el flujo de mensajes entrantes sería suficiente, lo que ActiveMQ le permite hacer con el uso de producerFlowControl y memoryLimits en los destinos. Tengo curiosidad por saber por qué querrías limitar los mensajes salientes también. Además, ¿no sería mejor controlar este tipo de cosas desde algún tipo de controlador de entrega de aplicaciones que se encuentre frente a su intermediario (suponiendo que incluso tenga esa opción)? – whaley
Nuestro cliente desea limitar el ancho de banda saliente de los productores (digamos que el cliente tiene un ancho de banda de 100 mbit, pero quiere usar solo 10 mbit). Me vuelve loco. JMS está hecho para entregar mensajes lo antes posible, así que realmente no entiendo esa demanda. Pero lamentablemente no está en mi decisión. – Sorceror