1C-Bitrix Sharding: Master-Slave, הפרדת מודולים וכוונון מטמון

אופטימיזציה של ביצועי 1C-Bitrix עם Sharding של מסד הנתונים חלוקה (Partitioning) מפצלת טבלה בתוך שרת אחד. Sharding מפיץ נתונים על פני מספר שרתי מסד נתונים. כאשר שרת MySQL יחיד אינו יכול להתמודד עם העומס (100% CPU, צוואר בקבוק של קלט/פלט דיסק), קנה מידה אופקי באמצעות sharding הוא אפשרות. עבור B
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
1C-Bitrix Sharding: Master-Slave, הפרדת מודולים וכוונון מטמון
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1460
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1019
  • פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    764
  • פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    882
  • פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    809
  • פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1166

אופטימיזציית ביצועי 1C-Bitrix עם Sharding של מסדי נתונים

Partitioning מפצל טבלה בתוך שרת אחד. Sharding מחלק נתונים בין מספר שרתי מסדי נתונים. כאשר שרת MySQL יחיד לא יכול להתמודד עם העומס (100% CPU, צוואר בקבוק של קלט/פלט דיסק), scaling אופקי באמצעות sharding הוא אופציה. עבור Bitrix, זו משימה לא טריוויאלית מכיוון שהליבה מתוכננת לעבוד עם מסד נתונים אחד. לפי תיעוד מודול הקלאסטר של Bitrix, מודול הקלאסטר המובנה תומך ב-master-slave והפרדת מודולים אך לא ב-sharding מלא. הצוות שלנו, עם ניסיון של 7+ שנים ב-Bitrix, ביצע למעלה מ-100 פרויקטים בעלי עומס גבוה. יש לנו 30+ מומחים מוסמכים ושיעור 만족ות לקוחות של 98%.

מתי יש צורך ב-Sharding?

אם לאחר הגדרת caching (Redis, tagged cache), הפעלת מצב composite, והגדרת שכפול master-slave מסד הנתונים עדיין מגיע למגבלות CPU, הגיע הזמן לשקול sharding. בפרויקט אחד עם קטלוג של 2 מיליון מוצרים, שאילתות מורכבות לקחו 30 שניות ללא sharding. לאחר העברת מודולי הסטטיסטיקה והחיפוש לשרתים נפרדים, הזמן ירד ל-300 אלפיות השנייה — שיפור של 99% עבור אותן שאילתות. במקרה אחר, הפחתנו את השימוש ב-CPU של מסד הנתונים מ-95% ל-40% תוך שבוע.

מנגנון מובנה: מודול cluster

Bitrix מספק את מודול search (זמין במהדורות Business ו-Enterprise). הוא תומך ב:

  • שכפול master-slave — כתיבה ל-master, קריאה מ-slave אחד או יותר. לא sharding טהור, אבל מקל על עומס הקריאה.
  • העברת מודולים למסד נתונים נפרד — מודול ספציפי (למשל, statistic או cluster) יכול להשתמש במסד נתונים משלו על שרת אחר.

הגדרת master-slave דרך Seconds_Behind_Master:

  1. הגדר שכפול MySQL/MariaDB באמצעות שיטות סטנדרטיות (GTID או positional).
  2. בפאנל הניהול של Bitrix: הגדרות → Web Cluster → Databases → הוסף.
  3. ספק את פרמטרי שרת ה-slave: host, port, login, password.
  4. Bitrix מנתב אוטומטית שאילתות SELECT ל-slave, ו-INSERT/UPDATE/DELETE ל-master.

המודול עוקב אחר פיגור שכפול (cluster) ומחזיר קריאות ל-master אם חריגה מהסף.

Sharding ברמת מודול

מודול statistic מאפשר העברת טבלאות של מודול ספציפי לשרת מסד נתונים נפרד. בפועל:

  • מודול b_stat_* — טבלאות search מייצרות 80% מעומס ה-INSERT באתר טיפוסי. העברתן מקלה על מסד הנתונים הראשי.
  • מודול b_search_* — טבלאות forum כבדות עבור חיפוש טקסט מלא. חלופה היא להעביר חיפוש ל-Elasticsearch.
  • מודול blog / Bitrix\Main\DB\MysqliConnection — אם הפורום או הבלוג פעילים, ניתן לבודד את הטבלאות שלהם.

הגדרה: Web Cluster → Databases → [שרת] → Modules — בחר את המודול להעברה. Bitrix מפנה שאילתות לטבלאות של אותו מודול לשרת שצוין.

Sharding אופקי של נתונים

Sharding מלא — פיצול טבלה לפי מפתח (למשל, מוצרים עם מזהה 1–100000 על שרת A, 100001–200000 על שרת B) — אינו נתמך ישירות על ידי Bitrix. ה-D7 ORM וה-API ה legacy עובדים עם חיבור מסד נתונים יחיד.

יישום אפשרי אך דורש:

  • שכבת proxy — Vitess או ProxySQL מנתבים שאילתות לפי כללי sharding בשקיפות לאפליקציה.
  • מחלקת DB מותאמת — ירושה מ-Bitrix\Main\DB\MysqliConnection עם לוגיקת ניתוב.
  • מגבלות: JOINs בין shards בלתי אפשריים, שאילתות aggregate חייבות להיאסף באפליקציה.

בפועל, sharding אופקי מלא עבור Bitrix משמש לעתים רחוקות. נפוץ יותר הוא שילוב: master-slave + העברת מודולים כבדים + caching.

השוואת שיטות Sharding
שיטה מורכבות השפעה על עומס תמיכת Bitrix
Partitioning נמוכה בינונית (האצת שאילתות) חלקית (דרך MySQL)
Master-slave בינונית קריאה: ×3–×5 מלאה (מודול קלאסטר)
העברת מודולים בינונית עומס master: –40% מלאה (מודול קלאסטר)
Sharding אופקי גבוהה רדיקלי אין (קוד מותאם)

השפעת Sharding על הארכיטקטורה

Sharding דורש שינוי בלוגיקת השאילתות: JOINs רק בתוך shard, aggregates דרך UNION, תמיכה בעסקאות רק ברמת ה-shard. אם sharding מיושם דרך שכבת proxy, האפליקציה לא משתנה, אבל ה-proxy מטפל בניתוב ויכול להפוך לצוואר בקבוק. הניסיון שלנו: Vitess עדיף על ProxySQL עבור Bitrix מכיוון שהוא תומך באיזון אוטומטי של shards.

תהליך ההתקנה

  1. בצע ביקורת על ארכיטקטורת מסד הנתונים הנוכחית, מדוד עומס, נתח יומני שאילתות איטיות.
  2. בחר טופולוגיה: master-slave, העברת מודולים, או sharding.
  3. הגדר שכפול וניטור (פיגור < 1 שנייה).
  4. העבר מודולים לשרתים נפרדים, בצע בדיקות עומס.
  5. אם יש צורך ב-sharding מלא, התקן proxy, העבר נתונים.
  6. בצע אופטימיזציית caching: Redis, tagged cache, מצב composite.

לוחות זמנים — משבועיים עבור master-slave עד חודשיים עבור sharding מלא. עלות טיפוסית נעה בין $5,000 ל-$20,000 תלוי במורכבות. לקוחות בדרך כלל חוסכים 30-50% בהשוואה לשדרוג כל החומרה.

מה כלול בעבודה

אנו מספקים:

  • תרשים ארכיטקטורה עם מיקום נתונים.
  • קבצי הגדרות עבור MySQL/MariaDB, ProxySQL/Vitess.
  • סקריפטים לניטור פיגור ושלמות.
  • תיעוד עבור נהלי שחזור מאסון.
  • הדרכה למנהלי מערכת ומפתחים.
  • אחריות לפעולה יציבה — 30 ימים של תמיכה 24/7 לאחר ההשקה.

צור קשר להערכת הפרויקט שלך. הצוות שלנו: 7+ שנים של ניסיון ב-Bitrix, 100+ פרויקטים בעלי עומס גבוה, 30+ מומחים מוסמכים, 98% שיעור 만족ות לקוחות. קבל ייעוץ על sharding — פנה אלינו, ונעריך את היקף העבודה.