как синхронизировать экземпляры объекта - PullRequest
0 голосов
/ 06 мая 2011

Я работаю с объектом, который служит базой данных в моем приложении. Однако мне нужно иметь избыточные копии этой базы данных. Итак, в init я создаю несколько экземпляров (скажем, 5) копий одного и того же объекта. (Я использую JAVA для этого, поэтому любой намек на существующие библиотеки также может быть полезен.)

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

Мой вопрос таков:

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

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

Ответы [ 4 ]

1 голос
/ 06 мая 2011

То, что вы описываете, это распределенный кеш. Крупный игрок в этом пространстве в настоящее время Coherence , хотя я считаю, что JBoss Cache наверстывает упущенное.

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

0 голосов
/ 06 мая 2011

Будет ли этот подход работать?У меня есть сомнения, потому что, даже если это сработает, я думаю, что система создает свое собственное узкое место.

Это создаст свое собственное узкое место.Вам лучше использовать базу данных в памяти, такую ​​как HSQLDB , или встроенную базу данных, такую ​​как SQLite.

0 голосов
/ 06 мая 2011

В распределенной синтонизации гораздо больше, чем можно упомянуть в одном ответе.Вам нужно беспокоиться о двухфазной фиксации, сетевых разделах и т. Д. И т. Д. Я бы посоветовал вам изучить существующее решение распределенной БД в сочетании с n-уровневой архитектурой Java EE, которая включает в себя распределение нагрузки.

0 голосов
/ 06 мая 2011

Вы говорите о распределенном кеше? Вы смотрели на ehcache?

...