Как синхронизировать данные между узлами сервера? - PullRequest
0 голосов
/ 08 июня 2011

У меня есть приложение Java EE, которое сгруппировано на двух узлах WebSphere V7. Если клиент изменяет данные, которые сохраняются в базе данных на узле 1, я хочу убедиться, что данные также обновляются немедленно на узле 2.

Я подумал об использовании службы таймера EJB, которая проверяет базу данных каждые несколько минут. Но что я могу сделать, если я хочу, чтобы обновление выполнялось вовремя, без какой-либо задержки на узле 2 и не устанавливало интервал в одну секунду или около того? Ну, я мог бы вызвать сервлет на узле 2 с узла 1 и запустить обновление таким образом. Но в этом случае мое приложение должно знать http-адреса всех узлов. Это не то, что я хочу. Любые другие предложения?

Есть ли лучший способ синхронизации изменений данных между узлами сервера?

Ответы [ 3 ]

1 голос
/ 28 июня 2011

Поскольку вы используете WebSphere, я бы рекомендовал использовать DistributedMap , который встроен в WAS.

0 голосов
/ 08 июня 2011

Предполагая, что ваши два узла WebSphere взаимодействуют с одной и той же базой данных, и вы не добавили никакой формы кэширования, данные будут доступны, как только узел 2 выполнит SQL-запрос к базе данных.

Я что-то упустил в вашем вопросе?

0 голосов
/ 08 июня 2011

Я бы рекомендовал использовать Jboss JGroups, который предлагает разные методы синхронизации. http://www.jgroups.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...