Как разрабатывать приложения без балансировки нагрузки EJB?

У меня есть класс Java Processor он слушает тему jms и пытается не отставать от скорости поступления сообщений, поэтому мы решили работать одновременно:

Единственный класс, слушающий тему, задача которой состоит в том, чтобы передавать сообщения пулу рабочих потоков, фактически являясь балансировщиком нагрузки. Это также должно помешать двум работникам обрабатывать сообщения для одного и того же клиента.

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

2 ответа

Решение

Эту проблему легко решить с помощью группы слушателей. Это то, что сервер приложений будет делать для вас.

Я бы получил хороший сервер приложений и использовал бы его MDB для быстрого решения этой проблемы. Размер бассейна, чтобы не отставать, и вы будете в порядке.

Если вы настаиваете на написании собственного кода, получите хорошую реализацию пула с открытым исходным кодом и используйте его.

Если это не EJB, рассмотрим Spring. Он содержит POJO, управляемые сообщениями, которые могут быть именно тем, что вам нужно

Почему бы вам просто не использовать очередь вместо темы и иметь несколько экземпляров одного и того же приложения для обработки сообщений из этой очереди?

Другие вопросы по тегам