Охолодження в пулі проксі: відстежуйте збої та перевіряйте відновлення
Дайте пулу проксі явні тимчасові стани та шлях відновлення замість видалення вузла після одного повільного запиту.
Проксі пропускає один термін. Пул видаляє його. Через годину проксі знову здоровий, але ваш застосунок не має способу це виявити, бо викинув запис.
Видалення може бути доречним для відкликаного облікового запису або вузла, який оператор вивів з експлуатації. Тимчасовий збій заслуговує на інший стан.
Зберігайте достатньо історії для наступного рішення
- Придатний
- Доступний для звичайної роботи за поточної політики.
- Охолоджується
- Тимчасово утриманий до зафіксованого терміну.
- Перевірку дозволено
- Одна контрольована спроба може оцінити відновлення.
- Вимкнений
- Оператор або стійка умова вивели його з обслуговування.
Зберігайте причину й етап разом із переходом. Відмова в з'єднанні, відхилені облікові дані, повільне тіло відповіді та HTTP-помилка пункту призначення не повинні всі разом збільшувати недиференційований лічильник «мертвих проксі».
Використовуйте годинник минулого часу для охолодження в межах процесу. Монотонний годинник не дає короткому очікуванню залежати від коригування настінного годинника. Не зберігайте монотонну позначку часу так, ніби це переносна дата, спільна для інших машин; розподіленому планувальнику потрібна окремо визначена модель часу й володіння.
Відновлення не повинно випускати натовп
Коли термін спливає, дозвольте невелику спробу відновлення, а не надсилайте всю чергу очікування одразу. Успішна спроба може відновити придатність; ще один збій може продовжити паузу згідно з обмеженою політикою.
Обирайте перевірку під ту роботу, яку вона має передбачати. Успішне TCP-з'єднання не є повною транзакцією HTTP або SOCKS. Стороння сторінка перевірки IP не доводить, що потрібне призначення досяжне або дозволене.
Зі слова «проксі» не випливає жодна універсальна тривалість охолодження. Задайте її з бюджету затримки операції, поведінки сервісу та наслідків ще однієї невдалої спроби. Зберігайте запис вузла, щоб тимчасова перерва не стала мовчки постійною втратою потужності.