Bu yoğun Java yönelimlidir, ancak yerel veritabanı istemci API'leri JDBC veri kaynaklarına köprülenebilir. Tungsten Myosotis, JDBC köprülemesine özgü MySQL için bir örnektir.
Tungsten Enterpriese çok master asenkron için iyidir. MySQL, PostgreSQL ve Oracle için çalıştığını düşünüyorum. Tek başına çalışabilir veya bir Java uygulamasına gömülebilir. MySQL için çalıştığını gördüm, ancak PostgreSQL iddia ediyorlar. Replicator bileşenleri açık kaynaklıdır, ancak tam çözümün daha fazla parçası vardır ve lisanslama maliyetleri gerektirir. Continuent başlangıçta çok master senkron için Sequoia'ya sahipti, ancak onu terk ettiler ve çok master asenkron için Tungsten oluşturdular - senkron ACID tutarlılığından daha stratejik bir işi ölçeklendiriyorlar. Tungsten Java ile yazılmıştır, bu yüzden yerel veritabanı istemcilerini köprülemek için Myosotis sunarlar.
SymmetricDS, çok master asenkron için iyidir. Açık kaynak kodludur. Depo gözü günlüğü yerine güncellemeleri yakalamak için tetikleyicileri yükler / kaldırır. Tek başına çalışabilir veya bir Java uygulamasına gömülebilir.
HA-JDBC, çoklu ana senkron için iyidir. C-JDBC ve Sequoia gibi eski geçersiz yazılımların üstesinden gelir. Açık kaynak kodludur. İki aşamalı kesinleştirme kullanır ve PostgreSQL, MySQL, Oracle, SQL Server, Derby, Sybase ve diğerleri için lehçelerle çalışır. Genellikle gömülüdür, bu nedenle PostgreSQL'e köprülemek için bir Java uygulamasına gömülür. Dağıtılmış kilitler, diziler, zaman, rand vb. Redhat / JBoss'tan jGroups tarafından işlenir. Güzel bir özellik, uygulamanız kilitlenme yaşadıysa ve geri alma işlemini desteklemiyorsa, "paralel" yerine "seri" işlem modudur. DB-küme farkında olmayan eski bir uygulamayı güçlendirmek için bu "seri" modu başarıyla kullandım, bu yüzden işlem yeniden deneme kodu eksikti. Seri mod günü kurtardı ve kötü bir tekrardan kaçındı.
H2, çoklu ana senkron için iyidir. Açık kaynak kodludur. HA-JDBC mimarisine benzer şekilde iki fazlı kesinleştirme kullanan bağımsız veritabanlarını veya kümeleri destekler, ancak iki fazlı kesinleştirme için fazladan bir bileşen gerektirmek yerine hepsi bir aradadır. Dağıtılmış olup olmadığını veya jGroups veya Hazelcast gibi üçüncü taraflara bağlı olup olmadığından emin değilim.
PostgreSQL ve diğer veritabanları için herhangi bir JDBC tabanlı çoğaltmanın, uygulamanız zaten Java'da yazılmış olmadıkça, JDBC köprüsünde yerel olması gerekir. MySQL için Tungsten Enterprise, Myosotis adlı isteğe bağlı bir bileşen sunar. Başarıyla bu JDBC veri kaynağı 4 düğümlü bir MySQL / InnoDB kümesine işaret eden bir HA-JDBC proxy veri kaynağı oldu JDBC PHP / Perl / C / mysqlclient köprü için kullanılır.
Tungsten, Repgretor ve Router bileşenlerinde PostgreSQL'i destekler, ancak Myosotis bileşeninden emin değildir. Olabilir. Tungsten Replicator / Router bileşenleri çok master asenkron içindir, ancak Myosotis sizi senkron için HA-JDBC veya H2 gibi alternatif bir JDBC arka ucuna köprüleyebilir.
JDBC köprüsüne özgü bir PostgreSQL varsa, bunu duymak isterim. Teorik olarak, JDBC Tip 4 sürücüsü olan herhangi bir veritabanı köprülenebilir. Type 4 JDBC, aynı veritabanı için yerel istemci arabirimi gibi yerel veritabanı protokolünü konuşur, bu nedenle yerel çağrıların JDBC çağrılarıyla bire bir eşleştirilmesi gerekir.