Обмен данными между серверами Java EE
Какие продукты / проекты могут помочь мне в следующем сценарии?
- Более одного сервера (в одном месте)
- Некоторое состояние должно быть общим для сервера (например, информация о том, выполняется ли запланированная задача и на каком сервере).
Очевидным ответом, конечно, могут быть базы данных, но мы используем Seam, и, похоже, нет хорошего способа вложить транзакции в Beam-компонент, поэтому мне нужно найти способ, где мне не нужно сходить с ума по конфигурации (пытался использовать EJB:s, но потом файл persistence.xml не был хорош). Поэтому мне нужно по-другому обойти эту проблему, пока Seam не поддержит вложенные транзакции.
Это в основном тот же сценарий, что и у меня, если вам нужно больше подробностей: https://community.jboss.org/thread/182126.
Есть идеи?
1 ответ
Похоже, вам нужно распределенное управление заданиями.
Реальность такова, что в мире Java EE вам в конечном итоге придется делать очереди, как в MoM [промежуточное программное обеспечение, ориентированное на сообщения]. Seam будет работать с JMS, и вы можете публиковать и подписывать очереди.
Где вы можете найти альтернативу в Akka. Это дает вам возможность распределять задания между машинами, используя прозрачную модель Actor/Agent. То есть ваши агенты могут сотрудничать друг с другом, независимо от того, находятся ли они в одном и том же экземпляре или по сети друг от друга, и вы не пишете тонны кода, чтобы это произошло, или вам не нужно специально обрабатывать вещи вверх и вниз по сообщению. цепь.
Еще одна вещь, которую Акка использует для этого, - это понятие "Надзор", иначе говоря, "Вперед и неудача", или "Пусть это потерпит крах". Это идея (за которой телекоммуникационные компании годами следуют), что системы будут выходить из строя, и вы должны разрабатывать их и иметь средства для обеспечения устойчивости.
Наконец, состояние других вариантов работы в мире Java мрачно. Использовали шов в течение многих лет. Это здорово, но они решили просто поддержать Quartz для работы, что бесполезно.
Akka также построен на Netty, который делает довольно сумасшедшие вещи с точки зрения параллелизма и производительности.
[Не сотрудник TypeSafe, кстати...]