2
MongoDB: ค้นหากระบวนการ mongos ร่วมกับแอพพลิเคชันเซิร์ฟเวอร์
ฉันต้องการถามคำถามเกี่ยวกับแนวปฏิบัติที่ดีที่สุดที่อธิบายไว้ในเอกสารนี้: http://info.mongodb.com/rs/mongodb/images/MongoDB-Performance-Best-Practices.pdf ใช้เราเตอร์แบบสอบถามหลายรายการ ใช้กระบวนการ mongos หลายตัวในหลายเซิร์ฟเวอร์ การปรับใช้ทั่วไปคือการค้นหากระบวนการ mongos บนแอ็พพลิเคชันเซิร์ฟเวอร์ซึ่งอนุญาตการสื่อสารโลคัลระหว่างแอ็พพลิเคชันและกระบวนการ mongos จำนวนกระบวนการ mongos ที่เหมาะสมจะขึ้นอยู่กับลักษณะของแอ็พพลิเคชันและการปรับใช้ พื้นหลังเล็กน้อยเกี่ยวกับการปรับใช้ของเรา เรามีโหนดแอพพลิเคชันเซิร์ฟเวอร์จำนวนมาก แต่ละกระบวนการรันหนึ่งกระบวนการที่ใช้ JVM ด้วย RESTful WS ที่ไร้สัญชาติ ตามแนวทางปฏิบัติที่ดีที่สุดนี้แนะนำให้ทุกโหนดเซิร์ฟเวอร์แอปพลิเคชันเดียวรันmongosกระบวนการของตัวเองซึ่งหมายความว่าจำนวนของกระบวนการ JVM เท่ากับจำนวนmongosกระบวนการเสมอ mongosกระบวนการทั้งหมดเชื่อมต่อกับ 3 เซิร์ฟเวอร์การกำหนดค่าและหลาย mongo shards (พร้อมชุดแบบจำลองภายในแต่ละ shard) แม้ว่าเราจะใช้การปรับใช้ที่ใช้ร่วมกัน แต่เราก็ไม่ได้ทำลายคอลเลกชันของเราจริงๆ ในความเป็นจริงเรามีฐานข้อมูลจำนวนมากซึ่งกระจายไปทั่วเศษทั้งหมดในช่วงเวลาที่สร้าง (และนี่เป็นกรณีการใช้งานหลักของเราสำหรับการแยกส่วนในขณะนี้) เนื่องจากแนวปฏิบัติที่ดีที่สุดแนะนำว่า "จำนวนกระบวนการ mongos ที่เหมาะสมจะขึ้นอยู่กับลักษณะของแอปพลิเคชันและการปรับใช้" ฉันเริ่มสงสัยว่าการใช้งานของเราmongosนั้นเหมาะสมหรือไม่หรือถ้ามันจะดีกว่าสำหรับเราที่จะมีmongosโหนดเฉพาะเซิร์ฟเวอร์แอปของเราเชื่อมต่อกับพวกเขาโดยไม่ต้องmongosทำงานในพื้นที่ คุณมีความคิดเห็นเกี่ยวกับวิธีที่ดีที่สุดในการตัดสินใจว่ามีmongosอินสแตนซ์ที่เหมาะสมจำนวนเท่าใดที่เกี่ยวข้องกับอินสแตนซ์ของเซิร์ฟเวอร์แอปพลิเคชันที่นับหรือขนาดของคลัสเตอร์ MongoDB เมื่อเร็ว ๆ นี้เราเริ่มพิจารณาการจัดการคลัสเตอร์สำหรับบริการเว็บไร้สัญชาติของเราซึ่งฉันหมายถึงเครื่องมือเช่น Docker, Apache Mesos และ Kubernetes …