У нас есть служба реального времени, которая получает двоичные сообщения из разных источников (внутренних и внешних), затем с помощью пары экземпляров NodeJS и одного экземпляра HAProxy, настроенных для маршрутизации трафика TCP, мы доставляем их нашим конечным пользователями различные службы, которые потребляют сообщения.Версия HAProxy - 1.8.14, NodeJS - 6.14.3, оба размещены на компьютере с CentOS 7.
Теперь у нас есть сложная проблема с некоторыми "пакетами" в исходящем интерфейсе экземпляра HAProxy.Мы не уверены, является ли пакет реальным (например, некоторые сообщения застряли в Node, а затем сеть переполняется сообщениями), или проблема заключается в некоторой неправильной настройке или косвенном эффекте какой-либо другой службы (обе последние причины более вероятны, так какиногда мы получаем эти всплески в полночь, которые имеют минимальную или нулевую нагрузку).
Проблема сейчас раздражает, но она может стать критической, поскольку она затопляет наш исходящий трафик, поэтому наши службы в реальном времени испытывают задержкуили небольшое время простоя в рабочее время.
Мой вопрос: как мы можем отслеживать и записывать природу или содержание этих сообщений с минимальными издержками?Я читал документы HAProxy, чтобы найти способ контролировать это, чего можно добиться с помощью сокета Unix, но нас беспокоит несколько вещей:
- Сколько стоят накладные расходыиспользования этого сокета?
- Можем ли мы отследить, что происходит на серверах, использующих этот сокет?Или это только дает нам статистику?
- Есть ли способ «поймать / повторить» содержимое этих сообщений или узнать некоторую информацию о них?с минимальными накладными расходами?
Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы относительно этой проблемы.