Etherpad-lite: Есть ли руководство по настройке балансировки нагрузки?

Созданный на 7 дек. 2016  ·  5Комментарии  ·  Источник: ether/etherpad-lite

tl; dr;
Мы видим странность в нашей настройке с балансировкой нагрузки. Различные площадки для одного и того же PadID в зависимости от того, на какой балансировщик нагрузки отвечает. Есть ли официальные или надежные документы по балансировке нагрузки Etherpad, которые я просто не могу найти?

Длинная версия;
Итак, причина, по которой я спрашиваю, заключается в том, что у нас есть система, которая использует балансировщик нагрузки для ряда служб, а домен etherpad подключается к одному серверу etherpad. Балансировщик нагрузки также является единственной точкой завершения для https.

Проблема, которую мы наблюдаем, заключается в том, что при тестировании с мобильных устройств мы, похоже, были направлены на один балансировщик нагрузки, а рабочие столы - через другой. Я не знаю, почему это произошло. Но проблема. Каждый балансировщик нагрузки обслуживает разные документы, несмотря на одинаковый PadID. Проверка журналов показала, что и в этот день была создана только одна площадка.

Мы выключили вторичный и вместо этого установили его как аварийное переключение. Все устройства теперь отображали тот же документ, что и на настольных машинах. Когда мы выключили первичный, заставив вторичный работать как аварийный, все устройства увидели другой документ, который изначально видели мобильные устройства.

Странность в том, что у них один и тот же PadID.

Я искал вещи, связанные с этим, и пока не сталкивался с этой конкретной проблемой. Я обнаружил несколько разговоров о нагрузочном тестировании и несколько разговоров о балансировке нагрузки, но по поводу балансировки нагрузки, похоже, так и не удалось прийти к какому-либо выводу.

Для справки: я участвую в проекте, пытаясь развернуть это в производственной среде для совместной работы в чрезвычайных ситуациях. Я не разработчик node.js, поэтому примите это во внимание, задавая технические вопросы по этому поводу. Я не против, когда мне задают вопросы, которые могут показаться разработчикам node.js простыми или очевидными, на самом деле, скорее всего, они необходимы. Я тоже часть команды, и у меня очень ограниченный доступ к производственным серверам. Однако я поддерживаю тесный контакт с системными администраторами, которые занимаются этой стороной вещей.

Question wontfix

Самый полезный комментарий

SESSIONKEY.txt, похоже, не играет какой-либо существенной роли.

Мы заметили, что параметр «head» имеет разные значения для каждого сервера и что он используется при построении ключа для хранилища ключ: значение .

например
`eth1

pad: 58483aee8a6dd9.65340416 | {"atext": {"text": "Test \ n \ nUntest? \ n \ n \ n", "attribs": " 4 + 4 5 | 4 + b | 1 + 1"}, "pool": { "numToAttrib": {"0": ["автор", "a.kFcgC1Xr1xVyK6VP"], "1": ["автор", "a.KokfEaKFHuLOrj8Q"], "2": ["автор", "a.XqjPbBqIv6M7W "]," 3 ": [" автор "," a.UTXpIyYgqxjhQBJN "]," 4 ": [" автор "," a.6adq2JkT7Yv40gBK "]," 5 ": [" автор "," a.vPuSKAf3Gx2voZlH "] }, «nextNum»: 6}, «head»: 95, «chatHead»: - 1, «publicStatus»: false, «passwordHash»: null, «savedRevisions»: []}

eth2

pad: 58483aee8a6dd9.65340416 | {"atext": {"text": "Test \ n \ nTest \ n \ nWTH \ n \ n ... \ n \ n \ n", "attribs": " 4 + 4 5 | 8 + i | 1 +1 "}," pool ": {" numToAttrib ": {" 0 ": [" author "," a.kFcgC1Xr1xVyK6VP "]," 1 ": [" author "," a.KokfEaKFHuLOrj8Q "]," 2 " : [«автор», «a.XqjPbBqDZM7WEIv6»], «3»: [«автор», «a.UTXpIyYgqxjhQBJN»], «4»: [«автор», «a.6adq2JkT7Yv40gBK»], «5»: [ «author», «a.VImJzfCalZs11fia»]}, «nextNum»: 6}, «head»: 105, «chatHead»: 0, «publicStatus»: false, «passwordHash»: null, «savedRevisions»: []}
`

Мы близки к тому, чтобы отказаться от балансировки нагрузки и перейти на отказоустойчивый подход. Высокая доступность - наша основная цель.

Хотя было бы неплохо получить официальное заявление от руководителей проекта по этому поводу. Это сэкономит другим много времени на поиски ответа.

Все 5 Комментарий

Привет, @Unifex , похоже, у каждого экземпляра Etherpad своя база данных. Вы, ребята, используете удаленную БД для хранения планшетов? У вас есть доступ к settings.json в корневой папке Etherpad? Не могли бы вы рассказать нам конфигурацию БД в этом файле?

Я не знаю ни одного документа о балансировке нагрузки для Etherpad, и я не знаю, готов ли он реплицировать свои изменения через разные БД для избыточности, поэтому, возможно, наличие одной БД для каждого экземпляра - это то, что заставляет вас иметь такое поведение.

Привет @lpagliari!

Спасибо за ответ. Просто предупреждаю. Мой менее быстрый ответ связан с тем, что я живу в будущем, и большая часть мира спит, пока мы здесь, в Новой Зеландии.

Я считаю, что у нас только одна БД. У нас определенно есть только один сервер БД. Я отправил запрос системным администраторам, чтобы убедиться, что это так. Я надеюсь обнаружить, что один указывает на сервер БД, а другой неправильно настроен (возможно, по умолчанию dirtyDB все еще на месте ...)

Должен получить ответ в течение получаса.

Еще раз спасибо за ответ.

С уважением,
Золото

Хорошо, только что получил ответ, и оба сервера с балансировкой нагрузки действительно указывают на одну и ту же базу данных на одних и тех же серверах баз данных. Мы проверили на сервере postgres и можем видеть оба сервера с подключением к БД. Я попросил системного администратора проверить файл settings.json, и они такие же. Он пошел еще дальше и проверил хэш файла, они идентичны.

Однако мы заметили, что APIKEY.txt одинаковы для обоих, но SESSIONKEY.txt разные.

Глядя на это сейчас.

SESSIONKEY.txt, похоже, не играет какой-либо существенной роли.

Мы заметили, что параметр «head» имеет разные значения для каждого сервера и что он используется при построении ключа для хранилища ключ: значение .

например
`eth1

pad: 58483aee8a6dd9.65340416 | {"atext": {"text": "Test \ n \ nUntest? \ n \ n \ n", "attribs": " 4 + 4 5 | 4 + b | 1 + 1"}, "pool": { "numToAttrib": {"0": ["автор", "a.kFcgC1Xr1xVyK6VP"], "1": ["автор", "a.KokfEaKFHuLOrj8Q"], "2": ["автор", "a.XqjPbBqIv6M7W "]," 3 ": [" автор "," a.UTXpIyYgqxjhQBJN "]," 4 ": [" автор "," a.6adq2JkT7Yv40gBK "]," 5 ": [" автор "," a.vPuSKAf3Gx2voZlH "] }, «nextNum»: 6}, «head»: 95, «chatHead»: - 1, «publicStatus»: false, «passwordHash»: null, «savedRevisions»: []}

eth2

pad: 58483aee8a6dd9.65340416 | {"atext": {"text": "Test \ n \ nTest \ n \ nWTH \ n \ n ... \ n \ n \ n", "attribs": " 4 + 4 5 | 8 + i | 1 +1 "}," pool ": {" numToAttrib ": {" 0 ": [" author "," a.kFcgC1Xr1xVyK6VP "]," 1 ": [" author "," a.KokfEaKFHuLOrj8Q "]," 2 " : [«автор», «a.XqjPbBqDZM7WEIv6»], «3»: [«автор», «a.UTXpIyYgqxjhQBJN»], «4»: [«автор», «a.6adq2JkT7Yv40gBK»], «5»: [ «author», «a.VImJzfCalZs11fia»]}, «nextNum»: 6}, «head»: 105, «chatHead»: 0, «publicStatus»: false, «passwordHash»: null, «savedRevisions»: []}
`

Мы близки к тому, чтобы отказаться от балансировки нагрузки и перейти на отказоустойчивый подход. Высокая доступность - наша основная цель.

Хотя было бы неплохо получить официальное заявление от руководителей проекта по этому поводу. Это сэкономит другим много времени на поиски ответа.

Эта проблема была автоматически помечена как устаревшая, поскольку в последнее время не было активности. Он будет закрыт, если больше не будет активности. Спасибо за ваш вклад.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги