Как вы храните и воспроизводите заявления JDBC? - PullRequest
1 голос
/ 06 февраля 2012

Учитывая приложение на основе JDBC, которое не было разработано для распространения изменений в реальном времени от одного экземпляра приложения, работающего на компьютере A, к другому экземпляру, работающему на компьютере B, в схеме двусторонней синхронизации.Как вы можете сделать это элегантно, без использования Symmetric DS?

Мы, хотя и использовали XMPP и XStream, преобразовывали POJO в XML или JSON, отправляя их через XMPP, Smack API в предварительно настроенную «комнату чата».где другие боты, слушая, будут воспроизводить данные, которые они получают.Таким образом, даже автономные клиентские приложения получат «DiscussionHistory», отправив их последнюю «начиная с отметки времени».

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

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

1 Ответ

0 голосов
/ 06 февраля 2012

Одним из распространенных подходов является построение кэширования так, чтобы приложение всегда запрашивало базу данных, если конкретная запись не найдена.Тогда вам нужно будет только синхронизировать кеширование, чтобы заставить все узлы в группе повторно загрузить определенную запись.Этого довольно легко достичь, используя, например, кеширование методом Spring и ehcache.

...