לאחר שינוי תצורה, הגדרות מסוימות אינן מסונכרנות בצמתים אחים בהגדרת discourse מרובת צמתים

שלום,

בהגדרת ריבוי צמתים עם קונטיינר web_only מאחורי מאזן עומסים, שמתי לב שכמה הגדרות כאשר משתנים מוחלים רק על צומת בודד (כנראה זה שאליו הייתי מחובר דרך מאזן העומסים בעת ביצוע השינויים). לכן שמתי לב לאלו באופן ספציפי: הודעה גלובלית, פוסטים נעוצים גלובלית ולאחרונה, בעת שינוי ערכת נושא לעדכון מותאם אישית.

בסופו של דבר, השינויים מוצגים למשתמשים רק אם מאזן העומסים מחבר אותם לאותו צומת שבו הם בוצעו. מה שמוביל לטעינות דפים מעורבות ורינדור אתר מבולגן במקרים מסוימים.

כעת השאלה. האם אני צריך להריץ פקודת טעינה מחדש של תצורה ב-rake על כל הצמתים לאחר שינויים כאלה או שאולי יש להוסיף משתנה סביבה ספציפי לקונטיינר בעת הפעלתו, עבור טעינות אוטומטיות/מצב אשכול כדי שהתצורה תופץ אוטומטית לצמתים אחיות?

כן, אתה יכול לנסות את הדברים הבאים:

su discourse -c 'bundle exec rake cache:clear'

לחלופין, אם אתה רוצה להיכנס לקונסול של Rails, SiteSetting.refresh! כנראה יעשה את אותו הדבר.

תודה! הרגשתי שהחמצתי משהו שם. האם יש אולי מאמר תיעוד שמציין לאחר אילו שינויי תצורה נדרשות פעולות כאלה? עשיתי בדיקה מהירה במאמרי התיעוד ולא שמתי לב לשום דבר לגבי זה או להגדרת HA באופן ספציפי.

רק מוודא: האם יש לכם מסד נתונים משותף של Redis בין כל הצמתים? זה חיוני כדי ש-Discourse יעבוד.

(יישומים אחרים עובדים עם Redis אחד לכל צומת, אבל ניסיון לעשות זאת עם Discourse יגרום לסוג הבעיות שאתה מתאר)

כן. Redis משותף לכל מופעי ה-node של Discourse. יצרתי את ההגדרה כך שתהיה HA (זמינות גבוהה), ולכן יש S3/Redis/PostgreSQL נפרדים.

האם אתה מבחין בהודעות שגיאה כלשהן הדומות ל-Global messages on xx timed out, message bus is no longer functioning correctly בתוך /logs?

בעבר, גיליתי שכאשר Redis ואפיק ההודעות פועלים במארחים נפרדים, מתרחשות פסקות זמן, מה שמוביל לכשל בסנכרון בין עובדי Unicorn שונים.

הפתרון העוקף שלי היה לטעון מחדש את כל שרת Unicorn באופן תקופתי.

חיפשתי בלוגים בכל הצמתים, ולא מצאתי רשומות לוג כאלה.

אה. אחרי הכל היו שם ההודעות Global messages on xx timed out, message bus is no longer functioning correctly. אבל חיפשתי בטעות בתיקיית הלוגים עצמה. עכשיו, כשמסתכלים בחלק השגיאות בממשק האינטרנט של הלוגים, אכן שמתי לב לרשומות שציינת. צריך להתרגל לעובדה ששגיאות שונות מופיעות במקומות שונים עבור discourse. בכל זאת נחמד שיש תכונות בצד האינטרנט של discourse.