นี่เป็นจาวาที่เน้นหนัก แต่ API ไคลเอนต์ฐานข้อมูลดั้งเดิมสามารถเชื่อมต่อกับแหล่งข้อมูล JDBC Tungsten Myosotis เป็นตัวอย่างสำหรับ MySQL ดั้งเดิมในการเชื่อมโยง JDBC
Tungsten Enterpriese นั้นดีสำหรับแบบอะซิงโครนัสแบบหลายหลัก ฉันคิดว่ามันใช้งานได้กับ MySQL, PostgreSQL และ Oracle สามารถเรียกใช้แบบสแตนด์อโลนหรือฝังตัวในแอปพลิเคชัน Java ฉันเห็นว่ามันใช้งานได้กับ MySQL แต่พวกเขาอ้างว่า PostgreSQL ส่วนประกอบ Replicator ของพวกเขาคือโอเพ่นซอร์ส แต่โซลูชันเต็มรูปแบบมีส่วนเพิ่มเติมและต้องการค่าลิขสิทธิ์ อย่างต่อเนื่องในขั้นต้นมี Sequoia สำหรับการซิงโครนัสแบบหลายมาสเตอร์ แต่พวกเขาละทิ้งมันและสร้างทังสเตนแทนอะซิงโครนัสแบบหลายมาสเตอร์ - พวกเขาพิจารณาขยายธุรกิจเชิงกลยุทธ์มากกว่าความสอดคล้อง ACID แบบซิงโครนัส Tungsten ถูกเขียนใน Java ดังนั้นจึงเป็นเหตุผลว่าทำไมพวกเขาจึงนำเสนอ Myosotis เพื่อเชื่อมต่อฐานข้อมูลลูกค้าดั้งเดิม
SymmetricDS นั้นดีสำหรับการทำงานแบบอะซิงโครนัสแบบหลายมาสเตอร์ มันเป็นโอเพนซอร์ซ มันติดตั้ง / ถอนการติดตั้งทริกเกอร์ในการจับภาพการปรับปรุงแทนการบันทึกถัง สามารถเรียกใช้แบบสแตนด์อโลนหรือฝังตัวในแอปพลิเคชัน Java
HA-JDBC เหมาะสำหรับการซิงโครนัสแบบหลายหลัก มันเหนือกว่าซอฟต์แวร์ที่หมดอายุกว่าเช่น C-JDBC และ Sequoia มันเป็นโอเพนซอร์ซ มันใช้สองเฟสกระทำและทำงานสำหรับ PostgreSQL, MySQL, Oracle, SQL Server, Derby, Sybase และอื่น ๆ อีกมากมายผ่านทางภาษา มันเป็นส่วนใหญ่สำหรับการฝังตัวดังนั้นฝังในแอปพลิเคชัน Java เพื่อเชื่อมโยงกับ PostgreSQL ล็อคแบบกระจายลำดับเวลา rand และอื่น ๆ ได้รับการจัดการโดย jGroups จาก Redhat / JBoss คุณสมบัติที่ดีอย่างหนึ่งคือโหมดการทำธุรกรรม "ซีเรียล" แทนที่จะเป็น "ขนาน" หากแอปของคุณมีการหยุดชะงักและไม่รองรับการย้อนกลับ ฉันใช้โหมด "serial" สำเร็จแล้วเพื่อติดตั้งแอปดั้งเดิมที่ไม่ได้รับรู้ถึง DB- คลัสเตอร์ดังนั้นจึงไม่มีรหัสลองธุรกรรมอีกครั้ง โหมดอนุกรมบันทึกวันและหลีกเลี่ยงการเขียนซ้ำที่น่ารังเกียจ
H2 ดีสำหรับการซิงโครนัสหลายหลัก มันเป็นโอเพนซอร์ซ สนับสนุนฐานข้อมูลหรือคลัสเตอร์แบบสแตนด์อโลนโดยใช้การคอมมิตสองเฟสคล้ายกับสถาปัตยกรรม HA-JDBC แต่ทั้งหมดนี้รวมอยู่ในที่เดียวแทนที่จะต้องใช้คอมโพเนนต์เพิ่มเติมสำหรับการคอมมิตแบบสองเฟส ไม่แน่ใจว่ามันกระจายล็อคตัวเองหรือขึ้นอยู่กับบุคคลที่สามเช่น jGroups หรือ Hazelcast
การเรพลิเคทแบบ JDBC ใด ๆ สำหรับ PostgreSQL และฐานข้อมูลอื่น ๆ นั้นจำเป็นต้องใช้เนทีฟบริดจ์ JDBC เว้นแต่ว่าแอปพลิเคชันของคุณจะถูกเขียนใน Java สำหรับ MySQL นั้น Tungsten Enterprise นำเสนอส่วนประกอบเพิ่มเติมที่เรียกว่า Myosotis ฉันใช้สิ่งนี้เพื่อเชื่อม PHP / Perl / C / mysqlclient กับ JDBC ซึ่งแหล่งข้อมูล JDBC เกิดขึ้นเป็นแหล่งข้อมูลพร็อกซี HA-JDBC ที่ชี้ไปยังคลัสเตอร์ MySQL / InnoDB 4 โหนด
Tungsten รองรับ PostgreSQL ในส่วนประกอบ Replicator และ Router แต่ไม่แน่ใจเกี่ยวกับองค์ประกอบ Myosotis อาจจะ. ส่วนประกอบของทังสเตนเรพลิเคเตอร์ / เราท์เตอร์มีไว้สำหรับการทำงานแบบอะซิงโครนัสแบบหลายหลัก แต่ Myosotis สามารถเชื่อมโยงคุณกับ JDBC แบ็คเอนด์ทางเลือกเช่น HA-JDBC หรือ H2 แบบซิงโครนัส
หากมี PostgreSQL ดั้งเดิมที่เป็น JDBC bridge ฉันอยากได้ยินเกี่ยวกับมัน ตามทฤษฎีแล้วฐานข้อมูลใด ๆ ที่มีไดร์เวอร์ JDBC Type 4 สามารถเชื่อมต่อได้ Type 4 JDBC พูดโพรโทคอลฐานข้อมูลเนทิฟเช่นเดียวกับอินเทอร์เฟซไคลเอ็นต์ดั้งเดิมสำหรับฐานข้อมูลนั้นดังนั้นควรมีการแม็พแบบหนึ่งต่อหนึ่งของการโทรเนทีฟกับการโทร JDBC