MongoDB شريحة
شرائح
هناك كتلة أخرى Mongodb الداخل، تشريح التكنولوجيا، وكمية كبيرة من البيانات لتلبية الطلب المتزايد على MongoDB.
عندما MongoDB لتخزين كميات هائلة من البيانات، قد يكون الجهاز غير كافية لتخزين البيانات، قد تكون كافية لتقديم قراءة مقبولة والكتابة الإنتاجية. عند هذه النقطة، يمكننا تقسيم البيانات على أجهزة متعددة، لذلك أن نظام قاعدة البيانات يمكن تخزين ومعالجة المزيد من البيانات.
لماذا شريحة
- نسخ كافة عمليات الكتابة إلى العقدة الأولية
- تأخير البيانات الحساسة في الاستعلام الرئيسي
- يقتصر مجموعة نسخة واحدة إلى 12 نقاط
- عندما يكون حجم هائل من طلبات ستظهر عندما الذاكرة.
- نقص القرص المحلي
- التوسع الرأسي غير مكلفة
MongoDB شريحة
ويوضح الشكل التالي استخدام بنية كتلة شريحة في توزيع MongoDB:
الصورة أعلاه لديه ثلاثة عناصر رئيسية هي التالية:
- شارد:
تستخدم لتخزين كتلة البيانات الفعلية، وبيئة الإنتاج الفعلي، وهو دور خادم قشرة يمكن أن يحدد عدد قليل من آلات relica تعيين التزام لمنع نقطة المضيفة واحدة من الفشل
- التكوين الخادم:
المثال mongod، يخزن ClusterMetadata كامل، بما في ذلك المعلومات قطعة.
- الموجهات الاستعلام:
الواجهة الأمامية من الطريق، حيث وصول العميل، ومجموعة كاملة تبدو وكأنها قاعدة بيانات واحدة تطبيقات الواجهة الأمامية يمكن استخدام بشفافية.
أمثلة على تجزئة
وتوزع الموانئ النسيج شريحة على النحو التالي:
Shard Server 1:27020 Shard Server 2:27021 Shard Server 3:27022 Shard Server 4:27023 Config Server :27100 Route Process:40000
خطوة واحدة: بدء تشغيل شارد خادم
[root@100 /]# mkdir -p /www/mongoDB/shard/s0 [root@100 /]# mkdir -p /www/mongoDB/shard/s1 [root@100 /]# mkdir -p /www/mongoDB/shard/s2 [root@100 /]# mkdir -p /www/mongoDB/shard/s3 [root@100 /]# mkdir -p /www/mongoDB/shard/log [root@100 /]# /usr/local/mongoDB/bin/mongod --port 27020 --dbpath=/www/mongoDB/shard/s0 --logpath=/www/mongoDB/shard/log/s0.log --logappend --fork .... [root@100 /]# /usr/local/mongoDB/bin/mongod --port 27023 --dbpath=/www/mongoDB/shard/s3 --logpath=/www/mongoDB/shard/log/s3.log --logappend --fork
الخطوة الثانية: بدء تشغيل خادم التكوين
[root@100 /]# mkdir -p /www/mongoDB/shard/config [root@100 /]# /usr/local/mongoDB/bin/mongod --port 27100 --dbpath=/www/mongoDB/shard/config --logpath=/www/mongoDB/shard/log/config.log --logappend --fork
ملاحظة: هنا يمكننا أن نبدأ مثل خدمة mongodb العادية كبداية، لا حاجة لإضافة المعلمات -shardsvr وconfigsvr. لأن دور هذه المعلمتين هو تغيير منفذ البداية، ولذا فإننا يمكن أن يكون الميناء المعين النفس.
الخطوة الثالثة: بدء عملية الطريق
/usr/local/mongoDB/bin/mongos --port 40000 --configdb localhost:27100 --fork --logpath=/www/mongoDB/shard/log/route.log --chunkSize 500
معلمات بدء التشغيل mongos، chunkSize يستخدم هذا واحد لتحديد حجم قطعة، هو وحدة MB، الحجم الافتراضي هو 200MB.
الخطوة الرابعة: تكوين عملية التجزئة
التالي، ونحن نستخدم MongoDB شل تسجيل الدخول إلى mongos، إضافة العقد شارد
[root@100 shard]# /usr/local/mongoDB/bin/mongo admin --port 40000 MongoDB shell version: 2.0.7 connecting to: 127.0.0.1:40000/admin mongos> db.runCommand({ addshard:"localhost:27020" }) { "shardAdded" : "shard0000", "ok" : 1 } ...... mongos> db.runCommand({ addshard:"localhost:27029" }) { "shardAdded" : "shard0009", "ok" : 1 } mongos> db.runCommand({ enablesharding:"test" }) #设置分片存储的数据库 { "ok" : 1 } mongos> db.runCommand({ shardcollection: "test.log", key: { id:1,time:1}}) { "collectionsharded" : "test.log", "ok" : 1 }
الخطوة الخامسة: في رمز البرنامج دون الكثير من التغيير، اتصال مباشر وفقا لقاعدة بيانات مونغو العادية واجهة الوصول إلى قاعدة البيانات للاتصال 40000