ПРИМЕНИМАЯ мультиосновная репликация для Пост-ГРЭС?

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

16
задан 13 January 2011 в 23:53
7 ответов

Я нашел применимую "мультиосновную" систему репликации:

  1. получите RabbitMQ http://www.rabbitmq.com/ - это - промежуточное программное обеспечение сообщения.

  2. настройте Кролика кластер MQ у Кролика.

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

Таким образом, сообщение, отправленное в любой узел и любую очередь, копируется во все другие узлы. У меня есть рабочий код для этого!

-2
ответ дан 2 December 2019 в 20:43

Вы рассмотрели Bucardo? Это - асинхронное мультиведущее устройство. Это не полностью завоевало популярность и не является общим решением, но это могло бы стоить попытки.

6
ответ дан 2 December 2019 в 20:43

Я должен согласиться с оценкой Peter: нет никакой действительно хорошей мультиосновной репликации для Пост-ГРЭС прямо сейчас. (Выполнение истинной мультиосновной репликации является очень трудной проблемой, и я не очарован ни одним из доступных решений.)

При закреплении списка Википедии потенциальных решений можно хотеть заняться расследованиями:

PostgreSQL предлагает несколько решений для мультиосновной репликации, включая решения на основе двухфазной фиксации. Существует Bucardo, rubyrep, PgPool и PgPool-II, PgCluster и Секвойя, а также некоторые собственные решения. Другим многообещающим подходом, реализовывая нетерпеливую (синхронную) репликацию является Пост-ГРЭС-R, однако это находится все еще в разработке. Еще одним проектом, реализовывая синхронную репликацию является Пост-ГРЭС-XC. Пост-ГРЭС-XC также все еще разрабатывается.

3
ответ дан 2 December 2019 в 20:43

Ответ на это является звучным нет.

2
ответ дан 2 December 2019 в 20:43

Я использовал londiste в течение прошлых 2 лет для мультиосновной репликации в postgresql.

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

Можно читать о londiste здесь (http://pgfoundry.org/projects/skytools/), это - то, что парни Skype используют для их кластера, также они создали его, таким образом, это двойное прохладное :)

1
ответ дан 2 December 2019 в 20:43

Если вам все еще интересно, попробуйте этот: http://www.symmetricds.org/ (Только Java)

1
ответ дан 2 December 2019 в 20:43

Это сильно ориентировано на Java, но собственные клиентские API базы данных могут быть связаны с источниками данных JDBC. Tungsten Myosotis - это пример MySQL, встроенного в мост JDBC.


  • Tungsten Enterpriese хорош для асинхронной работы с несколькими ведущими. Я думаю, это работает для MySQL, PostgreSQL и Oracle. Он может работать автономно или встроен в приложение Java. Я видел, как это работает для MySQL, но они требуют PostgreSQL. Их компонент Replicator имеет открытый исходный код, но полное решение состоит из большего количества частей и требует затрат на лицензирование. Первоначально у Continuent была Sequoia для синхронной работы с несколькими ведущими, но они отказались от нее и создали Tungsten вместо асинхронной системы с несколькими ведущими - они считают горизонтальное масштабирование более стратегическим бизнесом, чем синхронная согласованность ACID. Tungsten написан на Java, поэтому они предлагают Myosotis для соединения собственных клиентов баз данных.

  • SymmetricDS хорош для асинхронной работы с несколькими ведущими. Это открытый исходный код. Он устанавливает / удаляет триггеры для сбора обновлений вместо ведения журнала. Он может работать автономно или встраиваться в приложение Java.

  • HA-JDBC хорош для синхронной работы с несколькими мастерами. Он заменяет более старое несуществующее программное обеспечение, такое как C-JDBC и Sequoia. Это открытый исходный код. Он использует двухфазную фиксацию и работает с PostgreSQL, MySQL, Oracle, SQL Server, Derby, Sybase и многими другими через диалекты. Это в основном для встроенных, поэтому встроите приложение Java, чтобы связать его с PostgreSQL. Распределенные блокировки, последовательности, время, рандом и т. Д. Обрабатываются jGroups от Redhat / JBoss. Одна приятная особенность - это «последовательный» режим транзакции вместо «параллельного», если ваше приложение столкнулось с взаимоблокировками и не поддерживает откат. Я успешно использовал этот «последовательный» режим для модернизации устаревшего приложения, которое не поддерживает кластер БД, поэтому в нем отсутствовал код повтора транзакции. Последовательный режим спас положение и позволил избежать неприятной перезаписи.

  • H2 хорошо подходит для синхронной работы с несколькими ведущими. Это открытый исходный код. Он поддерживает автономные базы данных или кластеры, использующие двухфазную фиксацию, аналогично архитектуре HA-JDBC, но это все в одном, а не требует дополнительного компонента для двухфазной фиксации. Не уверен, выполняет ли он распределенные блокировки самостоятельно или зависит от сторонних разработчиков, таких как jGroups или Hazelcast.

Любая репликация на основе JDBC для PostgreSQL и других баз данных требует встроенного моста JDBC, если ваше приложение еще не написано на Java. Для MySQL Tungsten Enterprise предлагает дополнительный компонент Myosotis. Я успешно использовал это, чтобы связать PHP / Perl / C / mysqlclient с JDBC, где источником данных JDBC оказался прокси-источник данных HA-JDBC, указывающий на 4-узловой кластер MySQL / InnoDB.

Tungsten поддерживает PostgreSQL в своем репликаторе. и компоненты Router, но не уверен насчет компонента Myosotis. Может быть. Компоненты Tungsten Replicator / Router предназначены для асинхронной работы с несколькими мастерами, но Myosotis может связать вас с альтернативным сервером JDBC, таким как HA-JDBC или H2 для синхронного.

Если есть PostgreSQL, родной для моста JDBC, я хотел бы услышать об этом. Теоретически любая база данных с драйвером JDBC Type 4 может быть соединена мостом.

3
ответ дан 2 December 2019 в 20:43

Теги

Похожие вопросы