2010-09-02 12 views
2

У нас есть пользовательская система обмена сообщениями, написанная на Java, и я хочу реализовать базовую функцию пакетной/компрессии, которая в основном при большой нагрузке будет собирать кучу push-ответов в один ответ push-ответа ,Общий пакет обработки и сжатия QoS в Java

По существу:

  • , если мы обнаружим 3 сообщений были отправлены в прошлое втором затем начать ответы дозирования и график таймер срабатывает в течение 5 секунд
  • Таймера агрегировать все ответы сообщения, полученные в следующие 5 секунд в одно сообщение

Я уверен, что это было реализовано до того, как я просто ищу лучший пример этого в Java. Я не ищу полноценный слой обмена сообщениями, а только базовые сообщения обнаружения в секунду и планирую какую-то задачу (очевидно, я могу легко написать это сам, я просто хочу сравнить его с любыми существующими алгоритмами, чтобы убедиться, что я не пропущу никаких или что я упростил проблему как можно больше).

Есть ли хорошие примеры с открытым исходным кодом для создания базовых решений по пакету/дросселю/сжатию QoS?

ответ

0

Мы используем очень похожий механизм для высокой нагрузки.

он будет работать так, как вы его описали * Совокупные сообщения за определенный интервал * После этого отправьте список вместо одного сообщения. * Запустите агрегацию снова.

Вы должны следить за следующими ловушками: * Если вы используете транзакционную систему обмена сообщениями, такую ​​как JMS, вы можете попасть в проблему, потому что ваша реализация не сможет отправлять внутри транзакции JMS, чтобы она сохраняла агрегацию. В зависимости от размера вашей структуры данных для хранения сообщений это может закончиться вне пространства. Если у вас очень длинные транзакции, отправляющие много сообщений, это может создать проблему. * Отправка сообщения таким образом будет происходить асинхронно, потому что другой поток будет отправлять сообщение, и поток, вызывающий метод send(), помещает его только в структуру данных. * Придерживаясь примера JMS, вы должны иметь в виду, что они также потребляют сообщения, которые также используются этим методом. Потому что вы получите список сообщений из JMS как одно сообщение. Поэтому, как только вы передадите это одно сообщение JMS, вы отправили весь список сообщений. Вы должны проверить, не соответствует ли это вашим требованиям.