Latest web development tutorials

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