ฉันต้องสร้างแอปพลิเคชันเพื่อติดตั้งในโฮสต์ภายในเครื่องเพื่อใช้กับไคลเอ็นต์ภายในเครื่องแม้ว่าจะไม่มีอินเทอร์เน็ต แต่ก็ต้องรับประกันด้วยว่าไคลเอนต์ระยะไกลสามารถใช้แอปพลิเคชันต่อไปได้แม้ว่าเซิร์ฟเวอร์ภายในเครื่องจะไม่มีอินเทอร์เน็ต
ฉันคิดถึงการมีแอปพลิเคชันสองอินสแตนซ์ หนึ่งอินสแตนซ์ทำงานในเซิร์ฟเวอร์ภายในและอีกอินสแตนซ์ในคลาวด์ ในขณะที่เซิร์ฟเวอร์ภายในเครื่องมีอินเทอร์เน็ต การสืบค้นทั้งหมดไปที่เซิร์ฟเวอร์นั้น และฐานข้อมูลหลักจะถูกจำลองแบบสตรีมบนคลาวด์
เมื่ออินเทอร์เน็ตถูกตัดออกจากไคลเอนต์ระยะไกลสามารถใช้แอปต่อไปเพื่อสอบถามและอนุญาตให้ดำเนินการเขียนเพียงครั้งเดียว อินสแตนซ์ในเครื่องสามารถทำงานได้ต่อไปโดยไม่มีปัญหาใดๆ
เมื่อการเชื่อมต่ออินเทอร์เน็ตถูกกู้คืนไปยังเซิร์ฟเวอร์ภายใน ฐานข้อมูลทั้งสองควรซิงค์และรีสตาร์ทการจำลองแบบ Strem ระหว่างเซิร์ฟเวอร์ทั้งสอง
ฉันพบว่าการใช้การจำลองแบบสตรีมของ postgres ไม่สนับสนุนว่าฐานข้อมูลหลักเก่ายังคงเพิ่มข้อมูลต่อไป ตัวอย่างเช่น ด้วย pg_rewind ข้อมูลใหม่ทั้งหมดในหลักเก่าจะถูกลบออกก่อนที่จะซิงค์กับ db สแตนด์บายเก่า
ฉันต้องการวิธีที่ฉันสามารถใช้ฐานข้อมูลทั้งสองอย่างแยกกันชั่วขณะ แต่จากนั้นจึงซิงค์ทั้งสองในฐานข้อมูลหลัก ฉันจะทำได้อย่างไร
ด้านล่างมีสคีมาบางส่วนเพื่อให้ชัดเจน
แบบแผน