นี่เป็นคำถามปลายเปิดที่มีการตอบสนองที่เป็นไปได้มากมายซึ่งขึ้นอยู่กับสิ่งที่คุณพยายามทำ อย่างไรก็ตามฉันจะเพิ่มบางสิ่งเป็นคำตอบเนื่องจากความคิดเห็นจะไม่ใหญ่พอ
บริการจะทำหน้าที่เป็นกลุ่มการเชื่อมต่อฐานข้อมูล (ฉันคิดว่าการเชื่อมต่อ 2000+ บนฐานข้อมูลอาจทำให้เกิดปัญหา);
ใช่นั่นเป็นความคิดที่ดี คุณเปิดการเชื่อมต่อจำนวนน้อยลงและนำมาใช้ใหม่เมื่อการร้องขอมาถึงบริการ แต่คุณจำเป็นต้องรู้ว่าจะให้บริการคำขอที่รวดเร็วเพียงใดและคำขอแต่ละรายการใช้ฐานข้อมูลไม่มากมิเช่นนั้นจะมีกลุ่มย่อยขนาดเล็กที่สามารถหมดได้อย่างง่ายดายและคำขออื่น ๆ จะถูกบล็อกขณะที่รอการเชื่อมต่อฐานข้อมูล
การแคชสามารถช่วยได้ในการส่งคืนข้อมูลที่ดึงมาแล้ว (เช่นที่ฉันพูดขึ้นอยู่กับสิ่งที่คุณพยายามทำ - หากแบบสอบถามไม่ซ้ำกันคุณไม่สามารถแคชได้มาก)
นอกจากนี้โปรดทราบว่าขนาดสระจะได้รับการคูณด้วยจำนวนบริการที่คุณวาง บริการน้อยและคุณสามารถใช้ขนาดพูลฐานข้อมูลขนาดใหญ่ บริการมากขึ้นและคุณต้องลดขนาดพูลเพื่อให้คุณมีจำนวนการเชื่อมต่อที่เปิดไปยังฐานข้อมูลโดยรวม
เป็นไปได้ที่จะมีฐานข้อมูลพร้อมบันทึกการจัดส่งไปยังฐานข้อมูลแบบอ่านอย่างเดียวอื่น ๆ
ฐานข้อมูลสามารถกลายเป็นคอขวดของคุณได้อย่างง่ายดาย มีการเชื่อมต่อและ / หรือข้อความค้นหามากเกินไปและคุณสามารถทำลายได้ ณ จุดนี้มันไม่สำคัญว่าคุณจะสามารถขยายบริการของคุณไปยังหมายเลขใด ๆ ในแนวนอนได้ คำขอทั้งหมดจะเข้าถึงฐานข้อมูลเดียวกันในที่สุด
มีหลายวิธีในการปกป้อง: แคชฉันได้กล่าวถึงแล้ว (ขึ้นอยู่กับกรณีการใช้งานของคุณ), ทำซ้ำข้อมูลบางอย่างบนเซิร์ฟเวอร์อื่น ๆ เพื่อให้บริการแบบสอบถามบางอย่างตามที่คุณพูดถึง, CQRS (ขึ้นอยู่กับกรณีการใช้งานของคุณ) (ขึ้นอยู่กับกรณีการใช้งานของคุณอีกครั้ง) ฯลฯ
โปรดทราบว่าเมื่อคุณกระจายข้อมูลเช่นนั้นทฤษฎีบท CAP ก็เริ่มที่จะนำไปใช้ ระวังให้ดีเพราะคุณอาจต้องประนีประนอมระหว่างความสอดคล้องและความพร้อมใช้งาน
มันจะขยายขนาดได้ดีขึ้นเนื่องจากเราสามารถเพิ่มเครื่องจักรให้ทำงานบริการ REST ได้มากขึ้น
ใช่บริการ REST จะปรับขนาด แต่ตามที่กล่าวไว้ข้างต้นหากคุณไม่ได้ป้องกันฐานข้อมูลนั่นอาจกลายเป็นปัญหาคอขวดได้ง่าย
เป็นไปได้ที่จะใช้ HTTPS กับการบีบอัดเพื่อเหตุผลด้านความปลอดภัยและการประหยัดแบนด์วิดท์
ใช่เช่นเดียวกับสิ่งอื่น ๆ ... บางทีคุณอาจต้องการการรับรองความถูกต้อง / การอนุญาตในภายหลัง ฯลฯ
มีความเป็นไปได้ที่จะทำการเปลี่ยนแปลงแบบรวมศูนย์ในเอนทิตีธุรกิจโดยไม่ต้องปรับใช้เครื่องจักรใหม่กว่า 2000+ เครื่อง
ใช่ แต่มากถึงระดับหนึ่งและไม่ใช่การเปลี่ยนแปลงทุกประเภท หากคุณทำการเปลี่ยนแปลงที่ขาดคุณจะต้องอัปเดตลูกค้าด้วย ดังนั้นคิดเกี่ยวกับกลยุทธ์ในการอัปเดตไคลเอนต์เป็นเวอร์ชันล่าสุดหรือหากคุณอนุญาตให้ไคลเอนต์รุ่นเก่ายังคงทำงานและใช้แอปพลิเคชันได้
มันรวมได้ดีขึ้นกับระบบอื่น ๆ (เพียงชี้ไปที่บริการ REST)
ใช่ แต่นั่นหมายถึงลูกค้าที่ใช้บริการของคุณซึ่งบางทีคุณไม่สามารถควบคุมได้
หากคุณทำการเปลี่ยนแปลงที่ไม่หยุดยั้งและคุณมีกลยุทธ์ที่ดีในการอัพเดทไคลเอนต์ JavaFX 2000+ ของคุณก็ไม่มีปัญหา แต่ถ้ามีไคลเอนต์อื่นและคุณไม่สามารถควบคุมได้คุณอาจต้องใช้การกำหนดเวอร์ชันในบริการ REST และสนับสนุนมากกว่าหนึ่งเวอร์ชันจนกว่าทุกคนจะสามารถอัปเดตเป็นล่าสุดได้
อย่างที่ฉันพูดมันขึ้นอยู่กับสิ่งที่คุณพยายามจะทำ โดยรวมแล้วคุณเป็นความคิดที่ดี แต่ระวังสิ่งที่จะไม่มาฟรีเพียงเพราะคุณติดบริการ REST หน้าฐานข้อมูล
แค่ 2 เซ็นต์ของฉัน!