Обновление
Функциональность:
nsqd
: использование --tls-root-ca-file в запросах nsqauth (спасибо @intellitrend-team)nsqadmin
: обновлённая поддержка ECMAScript с ES5 до ES2020 (спасибо @dudleycarr)nsqadmin
: добавлено метка приостановленной темы в представлении узла (спасибо @dudleycarr)nsqadmin
: добавлено проверочное поле администратора для конца пути темы/узла (спасибо @dudleycarr)nsqd
: добавлена поддержка unix сокетов для прослушивателей tcp, http, https (спасибо @telepenin)nsqd
: добавлен API /debug/freememory (спасибо @guozhao-coder)nsqd
: более приятный текст помощи по параметру tls-min-versionnsqd
: возможность использования незаблокированного канала памяти если он временный или отложенныйnsqd
: использование структуры метаданных для обоих marshalling и unmarshalling (спасибо @karalabe)nsqd
: API /info возвращает больше информации (спасибо @arshabbir)nsqd
: возможность отключения как HTTP, так и HTTPS интерфейсов (спасибо @karalabe)nsqd
: поддержка TLS1.3 (спасибо @karalabe)nsqadmin
: новый флаг --dev-static-dir вместо отладочной сборкиПроблемы:
Dockerfile
: удалено проверение nsswitch.conf (спасибо @dudleycarr)nsqadmin
: исправлен счётчик путём ограничения шагов анимации (спасибо @dudleycarr)nsqadmin
: исправлен сломанный шаблон графика в представлении узла nsqadmin (спасибо @dudleycarr)nsqd
: исправлено несоответствие параллелизма чтения в RemoveClient (спасибо @gueFDF)nsqd
: исправлено панирование при активации statsd и деактивации memstats без тем (спасибо @carl-reverb)Обновление
dep
, прекращение поддержки Go 1.9
Функциональность:
nsqadmin
: переход на go:embed для статических активовnsqd
: возможность пропускать временные темы/каналы в выводе statsdnsqd
: возможность настройки пути конечной точки аутентификации (спасибо @tufanbarisyildirim)Context
для использования стандартного context
nsqd
: минимизация выделения памяти при отправке сообщений (спасибо @imxyb)uniq
(спасибо @donutloop)nsqd
: возможность пропуска данных о памяти из /stats
(спасибо @creker)nsqd
: обновление внутреннего RDY
счетчика клиента только при его изменении (спасибо @andyxning)nsqd
: обновление go-diskqueue
(изменение интерфейса) (спасибо @bitpeng)sort.Ints
над sort.Sort
(спасибо @lelenanam)nsqd
: настраиваемый пул рабочих процессов для сканирования очереди (спасибо @andyxning)nsqd
: не буферизировать сообщения когда --mem-queue-size=0
(спасибо @bitpeng)nsqd
: поддержка отдельных портов широковещательной передачи для TCP и HTTP (спасибо @shyam-king)Проблемы:
nsqadmin
: исправление ключа graphite для временных тем/каналовlog_level
в конфигурационном файле (спасибо @edoger)nsqd
: обработка сигнала SIGTERMnsqadmin
: исправление поддержки --proxy-graphite
nsqlookupd
: исправление неверного сообщения об ошибке для прослушивателя HTTP (спасибо @TangDH03)nsqd
: исправление замятия живого соединения для высокой текучести временных тем/каналов (спасибо @slayercat)nsswitch.conf
для обеспечения того, чтобы разрешитель Go использовал /etc/hosts
первымnsqd
: улучшение сообщения об ошибке, когда --data-path
не существует (спасибо @mdh67899)nsqadmin
: исправление удаления каналов, исправление карт источников в Firefox (спасибо @avtrifanov)nsqadmin
: исправление списка узлов с IPv6 адресами (спасибо @andyxning)Обновление
nsqd
: удалена поддержка старой схемы метаданных, используемой в v0.3.8 и ранее
dep
всё ещё присутствует, но устарелаФункциональность:* #1136 - nsqd
: добавлен параметр --max-channel-consumers
(по умолчанию неограниченный) (спасибо @andyxning)
nsqd
: добавлен параметр --min-output-buffer-timeout
(по умолчанию 25 мс) для ограничения минимального времени ожидания потребителя
--max-output-buffer-timeout
до 30 секунд (меньшее время ожидания, большее использование CPU)nsqd
: добавление общего количества байтов сообщений темы в статистику (спасибо @andyxning)nsqd
: добавление параметра для изменения стандартного --output-buffer-timeout
(спасибо @andyxning)nsqd
: добавление случайного распределения нагрузки для запросов к аутентификатору (спасибо @shenhui0509)nsqd
: включение имени клиента TLS в запросах к аутентификаторуnsq_to_file
: включение темы/канала в большинство сообщений журналированияnsq_to_file
: добавление флагов --log-level
и --log-prefix
nsq_to_file
: крупная рефакторизация, более надёжная смена файлов и синхронизация, улучшенная обработка ошибокnsqd
: добавление параметра к эндпоинту /stats
для пропуска статистики каждого клиента (значительно быстрее при множестве клиентов)nsqadmin
, nsq_stat
: использование параметра include_clients
для /stats
для значительного повышения скорости для больших кластеровnsq_to_file
: поддержка отдельной рабочей директории с помощью --work-dir
(спасибо @mccutchen)nsqadmin
: добавление флага --base-path
(спасибо @blinklv)nsq_to_http
: добавление флага --header
(спасибо @alwindoss)nsqd
: добавление производителей клиентских tcp соединений в статистику (спасибо @sparklxb)nsq_to_file
: новый параметр --sync-interval
(по умолчанию такое же значение, как было раньше, 30 секунд) (спасибо @alpaker)Проблемы:
nsqd
: закрытие соединений, которые не отправляют "магический" заголовок (спасибо @JoseFeng)nsqd
: завершение работы при всех фатальных ошибках Accept() - перезапуск позволяет лучше восстановиться для некоторых условий (спасибо @mdh67899)nsqd
, nsqlookupd
, nsqadmin
: рефакторинг LogLevel, общее улучшение завершения работы при всех фатальных ошибкахnsqadmin
: переход на использование judwhite/go-svc
как nsqd
и nsqadmin
nsqadmin
: исправление подсчёта клиентов и общего темпа сообщений канала (новые ошибки были введены в этом цикле)nsqd
, nsqlookupd
, nsqadmin
: исправление неустойчивого сериализования JSON ответа ошибки HTTPnsqlookupd
: исправление сиротских временных тем в базе регистрацииnsqd
: исправление некорректного подсчёта сообщений темы при наличии ошибок записи в фоновом режиме (спасибо @SwanSpouse)nsqlookupd
: оптимизация эндпоинта /nodes
, значительно лучше для сотен nsqd (спасибо @andyxning)GOFLAGS
на BLDFLAGS
в Makefile
теперь что GOFLAGS
автоматически используется Gonsqadmin
: исправление eslint для очистки и улучшенияОбновление с 1.0.0-compat: Только несколько обратно-несовместимых изменений:
nsq_pubsub
nsqd
--msg-timeout
и --statsd-interval
принимают только строки длительностей
nsqd
: http /mpub
эндпоинт binary
параметр интерпретирует "0" или "false" как текстовый режим
Предыдущее обновление, версия "1.0.0-compat", была странно названа для указания почти (но не совсем) полного перехода на линию выпусков 1.0 с устойчивым API. Внезапно следующее обновление, которое завершает этот переход, выпущено более чем год спустя. Поскольку за это время произошло множество изменений и улучшений, кажется подходящим сделать дополнительный минорный выпуск.
Функциональность:
nsqd
: добавление статистики памяти в ответ http /stats
(спасибо @sparklxb)nsqd
, nsqlookupd
, nsqadmin
: добавление опции --log-level
(заменяет --verbose
) (спасибо @antihax)nsqd
, nsqlookupd
, nsqadmin
: рефакторинг журналирования для использования уровней журналирования вездеnsqadmin
: разрешение "административного" права на основе X-Forwarded-User
(спасибо @chen-anders)nsqd
: добавление фильтра темы/канала к /stats
, использование в nsqadmin
и nsq_stat
для эффективности (спасибо @andyxning)nsq_to_file
: рефакторизация/чисткаnsq_to_nsq
: поддержка нескольких --topic
параметров (спасибо @jlr52)nsq_tail
: поддержка нескольких --topic
параметров (спасибо @soar)nsqd
, nsqadmin
: обновление внутреннего HTTP клиента новыми возможностями Go http.Transport
(поддержка keepalive, таймауты, dualstack)
nsqadmin
, nsqd
, nsqlookupd
dep
(заменяет gpm
) (спасибо @judwhite)nsqd
: лучшее использование памяти при различных размерах сообщений (спасибо @andyxning)nsqd
: оптимизация случайного выбора канала в loop сканирования очереди (спасибо @vearne)nsqd
: буфферизация и распределение отправок statsd UDP (избежание большой вспышки UDP, меньше шанс потери)nsqlookupd
: оптимизация для многих производителей (тысячи) (спасибо @andyxning)nsqd
: новый тема может быть разблокирован быстрее после созданияnsqadmin
: обновление JavaScript зависимостейПроблемы:nsqadmin
: исправление отсутствия каналов в списке темto_nsq
: исправление проблемы деления на ноль при отсутствии указания --rate
(спасибо @adamweiner)nsqd
: ограничение времени переотправки в диапазон вместо закрытия соединения (спасибо @tsholmes)nsqd
: исправление гонки при подписке клиента на временную тему или канал во время очистки (сообщено @slayercat)nsqd
: исправление обработки уровня сжатия deflatensqd
: исправление гонки при выключении каналаnsq_to_file
: исправление утечки соединений при использовании --topic-pattern
(спасибо @jxskiss)nsqlookupd
: закрытие соединения при неудачной попытке чтения магического значения (спасибо @yc90s)nsqd
: исправление некоторых гонок при получении ChannelStats (спасибо @daroot)nsqd
: исправление примера конфигурации e2e временных меток, добавление проверки диапазона (спасибо @protoss-player)nsq_tail
: логирование в stderr (только сообщения nsq в stdout)nsq_to_http
: исправление флагов таймаута подключения и запроса (спасибо @kamyanskiy)nsqd
: исправление возможной бесконечной гонки при ошибке идентификации lookupd (сообщено @andyxning)nsqadmin
: исправление опечатки "Delfate" в списке атрибутов соединения (спасибо @arussellsaw)nsqd
: исправление загрузки метаданных при наличии сообщений в приостановленной теме с несколькими каналами (спасибо @michaelyou)nsqlookupd
: выход с ошибкой при невозможности прослушивания портов (спасибо @stephens2424)nsqadmin
: исправление экранирования HTML для большого графика внутри JavaScriptОбновление с версии 0.3.8: Внесены многочисленные изменения, нарушающие обратную совместимость:
nsqd
удалены:
/{m,}put
(используйте /{m,}pub
)/{create,delete,empty,pause,unpause}_{topic,channel}
(используйте /{topic,channel}/<operation>
)--max-message-size
(используйте --max-msg-size
)short_id
и long_id
(используйте client_id
, hostname
и user_agent
)/stats
свойство name
(используйте client_id
)nsqlookupd
удалены:
/{create,delete}_{topic,channel}
(используйте /{topic,channel}/<operation>
)/tombstone_topic_producer
(используйте /topic/tombstone
)nsqadmin
удалены:
--template-dir
(не требуется, шаблоны скомпилированы в бинарник)--use-statsd-prefixes
(используйте --statsd-counter-format
и --statsd-gauge-format
)nsq_stat --status-every
(используйте --interval
)--reader-opt
всех бинарников, имевших этот флаг (используйте --consumer-opt
)nsq_to_file --gzip-compression
(используйте --gzip-level
)nsq_to_http --http-timeout
и --http-timeout-ms
(используйте --http-connect-timeout
и --http-request-timeout
)nsq_to_http --round-robin
(используйте --mode=round-robin
)nsq_to_http --max-backoff-duration
(используйте --consumer-opt=max_backoff_duration,X
)nsq_to_http --throttle-fraction
(используйте --sample=X
)nsq_to_nsq --max-backoff-duration
(используйте --consumer-opt=max_backoff_duration,X
)nsqd --worker-id
устарел в пользу --node-id
(будет полностью удален в последующих выпусках)Это выпуск совместимости, который устраняет широкий спектр ранее устаревших функций (#367), в то же время вводя некоторые новые устаревшие функции (#844), которые мы планируем полностью удалить в последующем выпуске 1.0.
В частности, все пред-1.0 HTTP-конечные точки (и форматы ответов) больше недоступны. Любые клиенты или инструменты, использующие эти конечные точки/форматы ответов, не будут работать с этим выпуском. Эти изменения доступны с версии 0.2.29 (выпущенной в июле 2014 года). Клиенты, желающие прямого обновления, могут либо использовать новые конечные точки, либо отправлять следующий заголовок:
Accept: application/vnd.nsq version=1.0
Кроме того, многие флаги командной строки были удалены — в большинстве случаев есть альтернативы с более очевидными именами. Эти изменения также затрагивают имена опций в файлах конфигурации.
На Linux этот выпуск автоматически выполняет миграцию файлов метаданных nsq.<worker-id>.dat
в nsq.dat
способом, который позволяет пользователям плавно понижаться до этого выпуска обратно к 0.3.8, если это необходимо. Последующий выпуск будет чистить эти удобные символы и наблюдать только за nsq.dat
. Подробнее см. обсуждение в #741 и изменения #844.
С точки зрения производительности, #741 был внедрен, что значительно снижает глобальное содержание на внутреннем генераторе идентификаторов сообщений, обеспечивая увеличение скорости на ~1.75x для многотемочных тестовых сценариев.
Наконец, было решено множество мелких проблем, охватывающих вклады девяти участников сообщества! Спасибо!
Функции:
alpine
для официального контейнера Docker (спасибо @kenjones-cisco)/config
API для nsqadmin
(спасибо @kenjones-cisco)nsqadmin
, nsq_stat
, nsq_to_file
, nsq_to_http
: таймауты подключения и запроса (спасибо @kenjones-cisco)to_nsq
: добавление опции регулирования скорости --rate
nsqd
: уникальные идентификаторы сообщений для каждой темы (скорость тестовых сценариев с несколькими темами увеличивается до ~1.75x)--log-prefix
для nsqd
, nsqlookupd
, nsqadmin
(спасибо @ploxiln)--worker-id
заменен на --node-id
, идентификатор удален из файла nsqd.dat
(спасибо @ploxiln) * #787 - правильное закрытие TCP-соединения в IOLoop
для nsqlookupd
(спасибо @JackDrogon)nsqdmin
(спасибо @joshuarubin)--topic
или --topic-pattern
для nsq_to_file
(спасибо @judwhite)nsqadmin
(спасибо @magnetised)nsqd
(спасибо @sdbaiguanghe)golang/snappy
для решения проблемы мертвой блокировки snappy (спасибо @judwhite)--broadcast-address
и ошибок при неудачных запросах к nsqlookupd
(спасибо @ploxiln @stephensearles)/mpub
(спасибо @yangyifeng01)nsqadmin
nsqd
Обновление с версии 0.3.7: Бинарники не содержат изменений, нарушающих обратную совместимость.
Этот выпуск исправляет критическую регрессию в 0.3.7
, которая могла привести к потере сообщений при попытке чистого завершения работы nsqd
путем отправки ему сигнала SIGTERM
. Ожидаемое поведение заключалось в том, чтобы выгрузить сообщения из внутренних буферов на диск перед завершением работы. Подробнее см. #757 и #759.
Несколько улучшений производительности были внедрены, включая #743, которое улучшает пропускную способность канала на ~17%, и #740, которое снижает мусор при чтении сообщений с диска.
Теперь отладочная информация убрана из бинарников, что уменьшило их размер, а Windows-бинарники теперь имеют подходящее расширение .exe
(#726 и #751).
Функции:
messagePump
канала для nsqd
nsqd
(спасибо @dieterbe)Проблемы:
SIGTERM
для nsqd
(спасибо @judwhite)go-options
nsqd
rate
без использования --proxy-graphite
для nsqadmin
(спасибо @ploxiln).exe
для Windows-бинарников (спасибо @ploxiln)1 часа
для nsqadmin
Обновление с версии 0.3.6: Бинарники не содержат изменений, нарушающих обратную совместимость.
Этот выпуск собран с помощью Go 1.6.
Основные достижения включают различные работы по уменьшению блокировки nsqd
, существенно улучшив влияние высокой нагрузки на конечную точку /stats
, а также решение проблем с таймаутами и ошибками в nsqadmin
(#700, #701, #703, #709).
Благодаря @judwhite, nsqd
и nsqlookupd
теперь поддерживают запуск как служб Windows (#718). Мы также начали публиковать официальные Windows-версии.
nsqd
теперь будет использовать flock
для каталога данных на Linux, предотвращая запуск двух nsqd
, указывающих на один и тот же путь (#583).
Что касается исправлений ошибок, наиболее значимым изменением является то, что nsqd
теперь правильно сбрасывает состояние здоровья после успешной записи в хранилище (#671).
Функции:
nsqd
(спасибо @zachbadgett @absolute8511)nsqd
и nsqlookupd
(спасибо @judwhite)nsqd
(спасибо @absolute8511)/debug/pprof/symbol
для nsqd
(спасибо @absolute8511)nsqadmin
(спасибо @kesutton)flock
для каталога данных на Linux для nsqd
nsqd
(спасибо @ploxiln)Проблемы:
nsqd
(спасибо @judwhite)nsqd
(спасибо @judwhite)nsqlookupd
для nsqd
dist.sh
и Makefile
(спасибо @ploxiln) * #656 — nsqadmin
: обновление префикса statsd
до stats.counters
nsqdamin
: отображение ошибок верхнего уровня/частичных ошибокnsqdamin
/nsqd
: поддержка --tls-required
nsqd
: игнорировать безобидные ошибки EOFnsqd
: обработка ошибок GUID / перехват ошибок если GUID уходит назад (спасибо @mpe)nsqd
: исправление допустимого диапазона для --worker-id
nsqd
: исправление бенчмарков (спасибо @Dieterbe)nsqd
: применение минимального/максимального размера сообщения для диск-очереди (спасибо @twmb)Обновление с 0.3.3: Бинарники содержат нет обратно-несовместимых изменений.
Это ещё одна быстрая исправляющая ошибку версия для решения проблемы сломанного бинарника nsqadmin
в распространении (см. #578).
ПРЕДУПРЕЖДЕНИЕ: Пожалуйста, обновитесь до v0.3.5
для решения проблемы сломанного бинарника nsqadmin
.
Обновление с 0.3.3: Бинарники содержат нет обратно-несовместимых изменений.
Эта версия является быстрой исправляющей ошибку версией для исправления устаревшей зависимости go-nsq
в v0.3.3
для встроенных утилит (см. 6e8504e).
ПРЕДУПРЕЖДЕНИЕ: Пожалуйста, обновитесь до v0.3.5
для решения проблемы устаревшей зависимости go-nsq
для встроенных утилит и сломанного бинарника nsqadmin
.
Обновление с 0.3.2: Бинарники содержат нет обратно-несовместимых изменений.
Эта версия в основном является исправляющей ошибку версией после чистки и переупорядочивания кодовой базы. nsqadmin
теперь импортируется, что создаёт основу для завершения #323. Встроенные утилиты получили несколько новых функций и исправлений ошибок (в основном из исправлений ошибок на стороне go-nsq
).
Функции:
nsqadmin
: переупорядочивание в импортируемый пакетnsq_to_{nsq,http}
: добавление режима epsilon-greedy
(спасибо @twmb)nsqd
: добавление start_time
к /stats
(спасибо @ShawnSpooner)nsq_to_http
: принимает любой ответ 200
как успешный (спасибо @mikedewar)nsq_to_http
: чтение всего тела запроса (спасибо @imgix)/internal
(спасибо @cespare)Проблемы:
nsqd
: не сохранять метаданные при запуске (спасибо @xiaost)nsqd
: не выводить ошибку EOF
при чистом закрытии клиента (спасибо @twmb)nsqd
: исправление --tls-required=tcp-https
с --tls-client-auth-policy
(спасибо @twmb)ЗАМЕЧАНИЕ: встроенные утилиты собраны против go-nsq
v1.0.4
и включают все эти функции/исправления.
Обновление с 0.3.1: Бинарники содержат нет обратно-несовместимых изменений, однако с этой версии мы обновили наши официальные образы Docker.
Теперь мы предлагаем единственный образ Docker nsqio/nsq
который включает во всё NSQ-бинарники. Мы сделали это по нескольким причинам, главным образом потому что помеченные версии в предыдущей реализации были сломаны (и фактически не привязывались к версии!). Новый образ меньше порядка величины, весит около 70 мегабайт.
Кроме того, побудительной причиной для этого быстрого выпуска стало решение целого ряда проблем повторного подключения в утилитах (nsq_to_nsq
, nsq_to_file
и т.д.), подробнее см. заметки по выпуску [go-nsq
v1.0.3
].
Функции:
Проблемы:
nsqadmin
: исправление дополнительных проблем удаления темы #ephemeral
nsqd
: исправление предоставленного образца файла конфигурации (спасибо @jnewmano)nsqd
: исправление сиротских эфимеральных каналов (спасибо @adamsathailo)Обновление с 0.3.0: Нет обратно-несовместимых изменений.
Эта версия содержит небольшие исправления ошибок и новые функции.
Существует ряд улучшений функциональности для помощников nsq_stat
и nsq_to_file
(и общего поддержания тем #ephemeral
, сломанных в 0.2.30
).
Кроме того, опции TLS продолжают улучшаться с поддержкой установки --tls-min-version
и обходным путём для ошибки, связанной с TLS_FALLBACK_SCSV
(будет исправлено в Go 1.5).
Функции:
nsq_stat
: декредация --status-every
в пользу --interval
nsq_stat
: добавление опции --count
(спасибо @nordicdyno)nsqd
: установка значений по умолчанию для --tls-min-version
и установка максимальной версии TLS до 1.2nsqd
: --tls-required
может быть отключен для HTTP / добавление --tls-min-version
(спасибо @twmb)nsq_to_file
: добавление <PID>
к имени файла и вращение по размеру/интервалу (спасибо @xiaost)nsq_stat
: добавление скоростей (спасибо @xiaost)nsqd
: ускорение пути отказа BytesToBase10
(спасибо @iand)Проблемы:
nsqadmin
: исправление проблем удаления темы #ephemeral
nsqd
: исправление diskqueue
атомарного переименования на Windows (спасибо @allgeek)nsqd
: возврат output_buffer_*
решённых настроек в ответе IDENTIFY
(спасибо @tj)Обновление с 0.2.31: Нет обратно-несовместимых изменений.
Эта версия включает множество исправлений ошибок и нескольких ключевых нововведений.
Наиболее важное функциональное изменение состоит в том, что nsqd
больше не уменьшает свой RDY-счёт для клиентов. Это значит, что клиентским библиотекам больше не требуется периодически заново отправлять RDY
. Для некоторого контекста, nsqd
уже предоставлял обратную связь благодаря тому, что клиент должен был отвечать за сообщения перед получением новых. Уменьшенный RDY-счёт лишь усложнял реализацию сервера и клиента без дополнительной выгоды. Теперь команда RDY
может рассматриваться как "вкл./выкл." переключатель. Подробнее см. #404 и связанные изменения в nsqio/go-nsq#83 и nsqio/pynsq#98.Второе наиболее важное изменение (и часто запрошенная функция!) — это темы #ephemeral
. Их поведение аналогично каналам. Эта функция очень полезна для ситуаций, когда вы используете темы для "маршрутизации" сообщений к потребителям (например, RPC) или когда накопление сообщений недопустимо.
Теперь есть скрипты в директории bench
, автоматизирующие процесс выполнения распределённого бенчмарка. Это работа в процессе, но она уже обеспечивает более близкий к продуктивному сценарию и поэтому более точные результаты. Здесь много работы!
Было исправлено множество ошибок — особенно все они были внесены сторонними участниками! Спасибо!
#ephemeral
темыRDY
/ отправлять RDY
до FIN
/REQ
diskqueue
в nsqd
nsq_to_file
(спасибо @lxfontes)IOLoop
в nsqd
(спасибо @rexposadas)Проблемы:
Notify()
го-рутинов до завершения (спасибо @allgeek)diskqueue
в конце бенчмарков (спасибо @Dieterbe)TestPauseMetadata
(спасибо @allgeek)dist.sh
(спасибо @losinggeneration)nsqadmin
для отсутствующих тем (спасибо @jnewmano)nsqd
(спасибо @twmb)nsq_to_nsq
/nsq_to_http
(спасибо @leshik)go get
(спасибо @adams-sarah)Обновление с 0.2.30: Нет обратно-несовместимых изменений.
Эта версия включает несколько ключевых изменений. Во-первых, мы улучшили обратную связь и обратное давление при записи nsqd
на диск. Ранее это было асинхронным и приводило к ситуации, когда клиенты не знали, что их PUB
провалился. Интересно, что эта рефакторизация улучшила производительность PUB
на 41% путём удаления темового го-рутинного механизма маршрутизации сообщений в пользу N:N Go-канала связи. Подробнее см. #437.
@paddyforan внес официальные Dockerfiles, которые теперь автоматически собираются через Docker Hub. Пожалуйста, начните использовать (и улучшайте эти) поскольку различные старые образы, которые мы поддерживали, будут устарели. Утилиты приложений прекратили использование флага --reader-opt
в пользу использования флагов --consumer-opt
и nsq_to_nsq
, а также to_nsq
получил флаг --producer-opt
для конфигурирования деталей соединения публикации в nsqd
. Кроме того, теперь возможно конфигурирование сертификатов TLS с клиента стороны через опции tls_cert
и tls_key
.
Как обычно, мы исправили несколько мелких ошибок, см. ниже за подробностями.
Новые возможности / Улучшения:
nsqd
: обратная связь по ошибкам дискового очередника и обратное давление (спасибо @boyand)nsqd
, nsqlookupd
, nsqadmin
(спасибо @paddyforan)--consumer-opt
для --reader-opt
и добавлен флаг --producer-opt
для nsq_to_nsq
(также поддерживаются конфигурация tls_cert
и tls_key
)nsqd
: улучшение сообщений об ошибках IOLoop (спасибо @rexposadas)Ошибки:
nsqd
: исправлена отчетность статистики statsd GC (спасибо @jphines)nsqd
: улучшение обработки/документации флага --worker-id
(спасибо @bschwartz)nsqd
: команда IDENTIFY
должна отвечать с материализованным значением msg_timeout
(спасибо @visionmedia)Обновление с версии 0.2.29: Нет обратно несовместимых изменений.
ВАЖНО: это быстрое исправление ошибок для решения проблемы паники в nsq_to_nsq
и nsq_to_http
, см. #425.
Новые возможности / Улучшения:
nsqadmin
/nsqd
: экспонировать состояние TLS соединенияnsq_to_nsq
/nsq_to_file
: отображение времени выполнения для каждого адресата назначенияОшибки:
nsq_to_nsq
/nsq_to_file
: исправление паники из-за общего изменяемого состоянияОбновление с версии 0.2.28: Нет обратно несовместимых изменений.
Эта версия включает множество новых возможностей и исправлений ошибок, с вкладами от 8 членов сообщества, спасибо!
Наиболее важной новой возможностью является аутентификация (команда AUTH
для nsqd
), добавленная в #356. Когда nsqd
настроен с помощью флага --auth-http-address
, он будет требовать клиентам отправлять команду AUTH
. Тело команды AUTH
прозрачно для nsqd
, который просто передает её авторизации демона, который отвечает с корректно сформированной JSON, указывающей какие темы/каналы и свойства этих объектов доступны данному клиенту (отклоняет клиента если тот пытается получить запрещенный доступ). Для более подробной информации, см. спецификацию или руководство по nsqd
.
Кроме того, мы улучшили производительность в нескольких областях. Во-первых, мы рефакторили обработку сообщений в полете в nsqd
чтобы уменьшить создание мусора и повысить базовую производительность на 6%. Конечное время завершения вычислений также значительно ускорилось благодаря улучшению в пакете perks
.
Формат ответов HTTP был улучшен (удалены повторяющиеся обертки ответов) и очищено пространство имён некоторых конечных точек. Это изменение совместимо с предыдущими версиями. Клиенты, желающие перейти на новый формат ответов, могут использовать новые имена конечных точек или отправлять следующий заголовок:
Accept: application/vnd.nsq version=1.0
```Другие изменения включают официальное увеличение ограничения символов для названий тем и каналов до 64 (спасибо @svmehta), возможность настройки ограничения времени ожидания команды `REQ` в `nsqd` (спасибо @AlphaB), а также компиляцию зависимостей статических активов в `nsqadmin` для упрощения развертывания (спасибо @crossjam).
Наконец, `to_nsq` был добавлен в набор интегрированных приложений. Он принимает поток входных данных и публикует его в `nsqd`, что представляет собой очень гибкое решение (спасибо @matryer)!
Что касается ошибок, они в основном являются мелкими, см. упомянутые ниже запросы на слияние для подробностей.
Новые возможности / Улучшения:
* #304 - приложения: добавлен `to_nsq` для направления входных данных stdin в NSQ (спасибо @matryer)
* #406 - `nsqadmin`: встроенные внешние зависимости статических активов (спасибо @crossjam)
* #389 - приложения: отчет имени и версии приложения через `user_agent`
* #378/#390 - `nsqd`: улучшение обработки сообщений в полете (быстрее на 6%, уменьшение создания мусора)
* #356/#370/#386 - `nsqd`: введение команды `AUTH`
* #358 - увеличение максимальной длины названий тем и каналов до 64 (спасибо @svmehta)
* #357 - удаление внутренних зависимостей `go-nsq` (уменьшение создания мусора)
* #330/#366 - версионирование HTTP конечных точек, упрощение формата ответов
* #352 - `nsqd`: возможность настройки ограничения времени ожидания команды `REQ` (спасибо @AlphaB)
* #340 - `nsqd`: обновление зависимости `perks` (повышение производительности E2E, см. 25086e4)
Ошибки:
* #384 - `nsqd`: исправление отчета времени ожидания GC в statsd
* #407 - `nsqd`: исправление двойного `TOUCH` и использования настроенного значения времени ожидания клиента
* #392 - `nsqadmin`: исправление предупреждения HTTPS (спасибо @juliangruber)
* #383 - `nsqlookupd`: исправление распределенного конфликта на последнее время обновления
* #385 - `nsqd`: правильная обработка пустого `FIN`
* #365 - `nsqd`: исправление ответа `IDENTIFY` `msg_timeout` (спасибо @visionmedia)
* #345 - `nsq_to_file`: установка правильных разрешений на новые директории (спасибо @bschwartz)
* #338 - `nsqd`: исправление имен файлов дисковых очередников на Windows (спасибо @politician)
### 0.2.28 - 2014-04-28
**Обновление с версии 0.2.27**: Нет обратно несовместимых изменений. Мы прекратили использование опций `short_id` и `long_id` в команде `IDENTIFY` в пользу `client_id` и `hostname`, что более точно отражает данные, обычно используемые.
Эта версия включает несколько важных новых возможностей, в частности усиленную поддержку TLS в `nsqd` благодаря большой вкладу @chrisroberts.
Вы можете теперь *требовать*, чтобы клиенты согласовывали TLS с помощью флага `--tls-required` и настраивать политику проверки сертификатов клиента через флаг `--tls-client-auth-policy` (`require` или `require-verify`):
* `require` - клиент должен предлагать сертификат, иначе будет отклонен
* `require-verify` - клиент должен предлагать действительный сертификат согласно дефолтному CA или цепочке, указанной в `--tls-root-ca-file`, иначе будет отклонен
Это может использоваться как форма аутентификации клиента.
Кроме того, `nsqd` теперь структурирован таким образом, чтобы быть импортируемым в других Go приложениях через `github.com/nsqio/nsq/nsqd`, благодаря @kzvezdarov.
Наконец, благодаря @paddyforan, `nsq_to_file` теперь может архивировать *несколько* тем или архивировать *все* найденные темы (указав нет параметров `--topic` и используя `--lookupd-http-address`).
Новые возможности / Улучшения:
* #334 - `nsq_to_file` может архивировать несколько тем (спасибо @paddyforan)
* #327 - добавление политики проверки сертификатов клиента TLS, возможность требования TLS и поддержка HTTPS (спасибо @chrisroberts)
* #325 - возможность импортирования `nsqd` (`github.com/nsqio/nsq/nsqd`) (спасибо @kzvezdarov)
* #321 - улучшение опций команды `IDENTIFY` (заменить `short_id` и `long_id` на `client_id` и `hostname`)
* #319 - возможность разделителя пути в именах файлов `nsq_to_file` (спасибо @jsocol)
* #324 - отображение глубины памяти и общей глубины в `nsq_stat`
Исправления ошибок:
* nsqio/go-nsq#19 и nsqio/go-nsq#29 - исправление мертвых замков на закрытии/выходе соединения `nsq.Reader`, что влияет на утилиты, упакованые вместе с бинарным распределением NSQ, такие как `nsq_to_file`, `nsq_to_http`, `nsq_to_nsq` и `nsq_tail`.
* #329 - использование интервала heartbeats для записи сроков
* #321/#326 - улучшение тестов нагрузки
* #315/#318 - исправление распределенных конфликтов тестовых данных / случайности
### 0.2.27 - 2014-02-17
**Обновление с версии 0.2.26**: Нет обратно несовместимых изменений. Мы прекратили использовать флаг `--max-message-size` в пользу `--max-msg-size` для согласования с остальными именами флагов.
ВАЖНО: Это ещё одна быстрая версия исправления ошибок для решения проблемы в `nsqadmin`, где шаблоны были несовместимы с старыми версиями Go (до 1.2).
* #306 - исправление совместимости шаблонов `nsqadmin` (и форматирования)
* #310 - исправление поведения `nsqadmin` когда E2E статистика отключена
* #309 - исправление ошибки `INVALID_ERROR` на странице узла `nsqadmin`
* #311/#312 - исправление распределённых конфликтов метаданных клиента и случайности тестов `nsqd`
* #314 - исправление распределённых конфликтов тестов `nsqd` (запуск с `-race` и `GOMAXPROCS=4`) прекращение использования `--max-message-size`
### 0.2.26 - 2014-02-06
**Обновление с версии 0.2.25**: Нет обратно несовместимых изменений.
ВАЖНО: Это быстрая версия исправления ошибок для решения регрессии, обнаруженной в `0.2.25`, где префиксы `statsd` были сломаны при использовании дефолтного (или любого другого) префикса, содержащего `%s` для автоматической замены хоста.
* #303 - исправление `nsqd` `--statsd-prefix` при использовании `%s` замены хоста
### 0.2.25 - 2014-02-05
**Обновление с версии 0.2.24**: Нет обратно несовместимых изменений.
Эта версия добавляет несколько часто запрошенных возможностей.Сначала, благодаря [@elubow](https://twitter.com/elubow) вы можете теперь настроить своих клиентов для выборочной регистрации потока, на который они подписались. Чтобы узнать больше о реализации, см. #286 и первоначальное обсуждение в #223. Эрик также внёс улучшение в `nsq_tail` для добавления возможности просмотра последних N сообщений и выхода.
Мы добавили поддержку конфигурационных файлов ([TOML](https://github.com/mojombo/toml/blob/master/README.md)) для `nsqd`, `nsqlookupd`, и `nsqadmin` — предоставляя ещё большую гибкость при развертывании. Примеры конфигураций находятся в каталоге `contrib`. Аргументы командной строки переопределяют эквивалентные опции в конфигурационном файле.
Мы добавили возможность приостановки темы (уже возможно приостановить отдельные каналы). Эта функциональность останавливает все сообщения, проходящие от темы к каналу для всех каналов данной темы, очередь происходит на уровне темы. Это позволяет множеству интересных возможностей, таких как атомарные переименования каналов и простые операции всей инфраструктуры.
Наконец, мы теперь компилируем статические активы, используемые `nsqadmin`, в бинарник, упрощая развертывание. Это значит, что опция `--template-dir` теперь устарела и будет удалена в будущих выпусках, и вы можете удалить ранее размещённые и поддерживаемые шаблоны.
Новые возможности / Улучшения:
* #286 — добавление опции IDENTIFY клиента для выборочного сэмплирования % сообщений
* #279 — добавление поддержки конфигурационного файла TOML для `nsqd`, `nsqlookupd` и `nsqadmin`
* #263 — добавление возможности приостановки темы
* #291 — компиляция шаблонов в двоичный файл `nsqadmin`
* #285/#288 — поддержка опции `-n` в `nsq_tail` для получения последних N сообщений
* #287/#294 — отображение атрибутов IDENTIFY клиента в `nsqadmin` (частота выборки, TLS, сжатие)
* #189/#296 — добавление агента пользователя клиента в `nsqadmin`
* #297 — добавление опций фильтрации JSON сообщений в `nsq_to_nsq`
### 0.2.24 - 2013-12-07
**Обновление с версии 0.2.23**: Нет обратно несовместимых изменений. Однако, как вы можете видеть ниже, было удалено несколько флагов командной строки для утилит (`nsq_to_http`, `nsq_to_file`, `nsq_to_http`). Они были устарели и будут удалены в следующей версии. Пожалуйста, используйте эту версию для перехода на новые.
ЗАМЕЧАНИЕ: мы теперь публикуем дополнительные бинарники, построенные против go1.2
Наиболее значительное добавление — это отслеживание процентилей времени обработки сообщений от начала до конца. Это измеряет время, затрачиваемое на обработку сообщений от PUB до FIN для каждой темы/канала. Процентили настраиваемы и, поскольку есть некоторый накладной расход на сбор этих данных, его можно полностью отключить. Для деталей реализации см. раздел [документации](https://nsq.io/components/nsqd.html).
Кроме того, утилиты получили полную поддержку всех настраиваемых опций читателя (включая сжатие, которое ранее отсутствовало). Это потребовало немного очистки флагов командной строки, как показано ниже:
#### nsq_to_file
* Устарел `--gzip-compression` в пользу `--gzip-level`
* Устарел `--verbose` в пользу `--reader-opt=verbose`
#### nsq_to_http
* Устарел `--throttle-fraction` в пользу `--sample`
* Устарел `--http-timeout-ms` в пользу `--http-timeout` (который является флагом продолжительности)
* Устарел `--verbose` в пользу `--reader-opt=verbose`
* Устарел `--max-backoff-duration` в пользу `--reader-opt=max_backoff_duration=X`
#### nsq_to_nsq
* Устарел `--verbose` в пользу `--reader-opt=verbose`
* Устарел `--max-backoff-duration` в пользу `--reader-opt=max_backoff_duration=X`
Новые возможности / Улучшения:
* #280 — добавление метрик времени обработки сообщений от начала до конца
* #267 — полная поддержка настраиваемых опций читателя для утилит
### 0.2.23 - 2013-10-21
**Обновление с версии 0.2.22**: Нет обратно несовместимых изменений.
Теперь мы используем [godep](https://github.com/kr/godep) для достижения воспроизводимого сборки с закрепленными зависимостями. Если вы используете go1.1+, вы можете использовать `godep get github.com/nsqio/nsq/...`.
Эта версия включает возможность переговоров протокола сжатия в `nsqd`. Поддерживаются Snappy и Deflate, клиенты могут выбрать предпочитаемый формат.
Флаг `--statsd-prefix` теперь может использоваться для изменения префикса ключей `statsd`, создаваемых `nsqd`. Это полезно, если вам нужно добавить префикс для центра обработки данных или удалить стандартный префикс хоста.
Наконец, эта версия включает исправление ошибки, которое снижает использование ЦПУ для `nsqd` с большим колич�数的中文翻译如下:
首先,感谢[@elubow](https://twitter.com/elubow),现在您可以为订阅的主题设置选择性流采样。要了解更多信息,请参阅#286和最初的讨论#223。Eric还改进了`nsq_tail`以支持查看最后N条消息并退出。
我们添加了对配置文件([TOML](https://github.com/mojombo/toml/blob/master/README.md))的支持,用于`nsqd`、`nsqlookupd` 和 `nsqadmin`——这提供了更多的部署灵活性。示例配置位于`contrib`目录中。命令行参数将覆盖配置文件中的等效选项。
我们增加了主题暂停功能(已经可以单独暂停通道)。此功能会停止所有从主题到通道的消息传递,并在主题级别进行排队。它提供了一些有趣的特性,例如原子重命名通道以及简单的基础设施操作。
最后,我们现在将`nsqadmin`使用的静态资产编译成二进制文件,简化了部署过程。这意味着`--template-dir`选项现在已经过时,在未来的版本中将会被移除,您也可以删除之前放置和支持的模板。
新功能/改进:
* #286 — 添加客户端IDENTIFY选项以实现选择性的消息采样
* #279 — 添加对`nsqd`、`nsqlookupd`和`nsqadmin`的TOML配置文件支持
* #263 — 添加主题暂停功能
* #291 — 将`nsqadmin`模板编译成二进制文件
* #285/#288 — 在`nsq_tail`中增加-n选项来获取最后N条消息
* #287/#294 — 在`nsqadmin`中显示客户端IDENTIFY属性(采样频率、TLS、压缩)
* #189/#296 — 在`nsqadmin`中添加用户代理客户端代理
* #297 — 在`nsq_to_nsq`中添加JSON消息过滤选项
### 0.2.24 - 2013-12-07
**与0.2.23版相比更新:** 没有向后不兼容的变化。然而,如下面所示,一些命令行标志已被移除,它们已过期并在未来版本中会被移除。请使用此版本过渡到新的版本。
注意:我们现在发布额外的针对go1.2构建的二进制文件。
最重要的新增功能是对整个消息处理时间百分位数跟踪的支持。这测量了每个主题/通道从PUB到FIN的消息处理时间。这些百分位数可自定义,并且由于收集这些数据有一些开销,因此可以选择完全禁用。有关实现细节,请参见[文档](https://nsq.io/components/nsqd.html)。
此外,工具现在全面支持所有可定制的读取器选项(包括以前缺失的压缩功能)。这需要清理一些命令行标志,如下所示:
#### nsq_to_file
* 过时的`--gzip-compression`改为`--gzip-level`
* 过时的`--verbose`改为`--reader-opt=verbose`
#### nsq_to_http
* 过时的`--throttle-fraction`改为`--sample`
* 过时的`--http-timeout-ms`改为`--http-timeout`(这是一个持续时间标志)
* 过时的`--verbose`改为`--reader-opt=verbose`
* 过时的`--max-backoff-duration`改为`--reader-opt=max_backoff_duration=X`
#### nsq_to_nsq
* 过时的`--verbose`改为`--reader-opt=verbose`
* 过时的`--max-backoff-duration`改为`--reader-opt=max_backoff_duration=X`
新功能/改进:
* #280 — 添加端到端消息处理时间度量
* #267 — 工具全面支持可定制的读取器选项
### 0.2.23 - 2013-10-21
**与0.2.22版相比更新:** 没有向后不兼容的变化。
现在我们使用[godep](https://github.com/kr/godep)来达到具有固定依赖项的可重复构建。如果您使用的是go1.1+,您可以使用`godep get github.com/nsqio/nsq/...`。
该版本引入了`nsqd`协议压缩协商功能。支持Snappy和Deflate,客户可以选择他们偏好的格式。
标志`--statsd-prefix`现在可用于更改由`nsqd`创建的`statsd`键前缀。这对于需要添加数据中心前缀或删除标准主机前缀的情况很有帮助。
最后,这个版本包含了一个修复错误的功能,它可以减少大量客户端情况下`nsqd`的CPU利用率,通过选择一个更现实的默认值来缓冲客户的输出。更多详情请参见#236。
新功能/改进:
* #266 — 使用godep进行可重复构建
* #229 — 协商压缩(Snappy/Deflate)
* #241 — 支持HTTP /mput用于二进制数据
* #269 — 增加`--statsd-prefix`标志
错误修正:
* #278 — 在`nsqd`中解决清除客户订阅的竞争条件问题(感谢@Simplereach)
* #277 — 解决`nsqadmin`中的计数页面问题
* #275 — 禁止访问simplejson内部数据
* #274 — 在非受控重启期间丢失通道暂停状态(`nsqd`) (感谢@HailoCab)
* #236 — 减少大量客户端情况下的空闲CPU利用率高达90%
### 0.2.22 - 2013-08-26
**与0.2.21版相比更新:** 消息的时间戳现在正式表示为纳秒。虽然协议文档一直如此说明,但`nsqd`实际上发送的是秒。这对那些使用此字段的客户端库/客户端可能会造成兼容性问题。
此版本也引入了`nsqd`中TLS握手的支持。客户可以选择性地激活TLS,使用相应的握手命令`IDENTIFY`。详见#227。Значительные улучшения были сделаны для HTTP-конечных точек публикации и обработки сообщений в процессе передачи, чтобы уменьшить давление на сборщик мусора и устранить векторы злоупотребления памяти. См. #242, #239 и #245.
Эта версия также включает новую утилиту `nsq_to_nsq` для быстрого, низко-задержечного копирования темы NSQ через TCP-протокол.
Наконец, целый набор отладочных HTTP-конечных точек был добавлен (и объединён) под пространство имён `/debug/pprof`. См. #238, #248 и #252. В результате `nsqd` теперь поддерживает прямое профилирование через инструмент `pprof` Go, то есть:
```bash
$ go tool pprof --web http://ip.address:4151/debug/pprof/heap
Новые возможности / Улучшения:
nsqadmin
(с графиками GC/памяти)nsq_to_nsq
для копирования темы через TCPnsq_to_http
принимает флаг --content-type
(спасибо @michaelhood)nsqlookupd
/nsqadmin
отображают зомби-темы в списке /nodes
/mput
Исправления ошибок:
tombstone_topic_producer
в nsqadmin
недостает информации об узлеnsqd
при изменениях темы/каналаnsqlookupd
/nsqadmin
отображали неактивные узлы в списке /nodes
nsq_to_file
, которые приводили к пустым файламОбновление с версии 0.2.20: нет обратно несовместимых изменений в этой версии.
Эта версия представляет собой значительное новое клиентское функциональное расширение, а также ряд улучшений согласованности и восстановления для диск-очереди.
Сначала, мы расширили варианты переговоров для клиентов. Есть много случаев, когда вы хотите иметь различные семантики буферизации выходных данных от nsqd
до вашего клиента. Вы можете контролировать размер буфера выходных данных и время ожидания буфера выходных данных через новые поля в команде IDENTIFY
. Вы даже можете отключить буферизацию выходных данных, если низкая задержка имеет приоритет.
Вы можете теперь указывать интервал между fsync'ами через --sync-timeout
. Это гораздо лучший способ управления моментами, когда процесс fsync'ит сообщения на диск (по сравнению с существующим --sync-every
, который основан на количестве сообщений). --sync-every
считается устаревшим опцией и будет удален в будущих выпусках.
Наконец, 0.2.20
ввел значительную регрессию в #176, где тема не могла записывать сообщения в свои каналы. Рекомендовано всем пользователям, работающим с 0.2.20
, обновиться до этой версии. Для дополнительной информации см. #217.
Новые возможности / Улучшения:
--sync-timeout
для управляемого по времени fsync, улучшение момента синхронизации диск-очередиnsq_tail
генерирует случайный временный каналИсправления ошибок:
--statsd-interval
для nsqadmin
для обработки интервалов statsd отличных от 60 секундnsqadmin
Обновление с версии 0.2.19: нет обратно несовместимых изменений в этой версии.
Эта версия добавляет несколько удобных функций (например, возможность очистки темы) и продолжает работу по уменьшению мусора, производимого во время выполнения, чтобы облегчить давление на сборщик мусора в Go-runtime.
nsqd
теперь имеет два новых флага для контроля максимального значения, которое клиенты могут использовать для установки своего интервала сердцебиения, а также для корректировки максимального количества RDY для клиента. Все это устанавливается/передается через IDENTIFY
.
nsqadmin
теперь отображает соединения nsqd
-> nsqlookupd
в представлении "узлов". Это полезно для визуализации, как соединена топология, так и для ситуаций, когда --broadcast-address
используется неправильно.
nsq_to_http
теперь имеет режим "пула хостов", где состояние источника будет корректироваться на основе успешных/неудачных запросов, а для неудачных запросов источники будут экспоненциально замедлены. Этот режим маршрутизации очень полезен.
Что касается ошибок, мы исправили проблему, где "критические" ошибки клиента не рассматривались как критические. При некоторых условиях удаление темы не очищало все ее файлы на диске. Было сообщено о проблеме, где путь к данным --data-path
не был доступен для записи процессом, что было обнаружено только после начала потока сообщений. Мы добавили проверку доступности записи при старте для улучшения обратной связи. Наконец, значение deferred_count
было отправлено как значение счетчика в statsd, должно быть гаугой.
Новые возможности / Улучшения: * #197 — улучшение представления узлов в nsqadmin
(отображение соединений nsqd
-> lookupd
)
nsqadmin
(спасибо @elubow)nsq_to_http
nsq_stat
для командной строки анализа--max-rdy-count
для nsqd
--max-heartbeat-interval
для nsqd
Исправления ошибок:
Обновление с версии 0.2.18: в этой версии нет обратно несовместимых изменений.
Эта версия представляет собой небольшое обновление, которое вводит одну важную клиентскую функцию и решает одну критическую ошибку.
Клиенты nsqd
теперь могут настроить свой собственный интервал сердечного удара. Это важно потому, что начиная с версии 0.2.18
все клиенты (включая производителей) получали сердечные удары по умолчанию. В некоторых случаях получение сердечного удара усложняло работу "простых" клиентов, которые хотели только отправлять сообщения и не обрабатывать асинхронные ответы. Это предоставляет гибкость для клиента, чтобы он мог сам решить, как ему следует себя вести.
Был выявлен критический баг, где очистка канала приводила к несоответствию состояния клиента (оно не обнулялось), что ограничивало доставку сообщений этим клиентам.
Новые возможности / Улучшения:
nsqd
Исправления ошибок:
Обновление с версии 0.2.17: все клиенты V2 nsqd
теперь получают сердечные удары (ранее они получались только у подписчиков, исключая TCP производители).
Обновление с версии 0.2.16: следуйте заметкам в логе изменений версии 0.2.17 для обновления с версии 0.2.16.
Помимо важной информации выше относительно сердечных ударов эта версия включает nsq_tail
, очень полезное утилитное приложение, которое можно использовать для анализа темы на командной строке. Если statsd активирован (и графит в nsqadmin
), мы добавили возможность получения скоростей для отображения в nsqadmin
.
Мы решили несколько критических проблем с согласованностью данных в nsqlookupd
при удалении каналов и тем. Во-первых, удаление темы приводило к тому, что этот производитель исчезал из nsqlookupd
для всех тем. Во-вторых, удаление канала приводило к исчезновению этого производителя из списка тем в nsqlookupd
.
Новые возможности / Улучшения:
nsqd
получают сердечные ударыnsq_tail
nsqadmin
Исправления ошибок:
nsqlookupd
nsqadmin
nsqlookupd
при удалении каналовОбновление с версии 0.2.16: IDENTIFY и SUB теперь возвращают успешные ответы (ранее они отвечали только на ошибки). Официальные библиотеки Go и Python совместимы вперед и назад с этим изменением, однако сторонние библиотеки клиентов могут не быть.
Обновление с версии 0.2.15: в #132 были удалены устаревшие опции SUB, а также поддержка старого, строчного формата файла метаданных nsqd
. По этой причине рекомендуется обновиться до версии 0.2.16
первым делом.
Новые возможности / Улучшения:
nsqd
nsqd/nsqadmin
(спасибо @dustismo)nsqadmin
на метод POST и требование подтвержденияnsqadmin
nsqd
Исправления ошибок:
nsqadmin
nsqadmin
nsqd
в nsqlookupd
nsq_to_file
nsqlookupd
Обновление с версии 0.2.15: в этой версии нет обратно несовместимых изменений.
Однако, эта версия вводит команду IDENTIFY
(которая заменяет передачу метаданных вместе с SUB
) для клиентов nsqd
. Старая функциональность будет удалена в будущей версии.* #114 — сохранение приостановленных каналов через перезапуск
nsqd
при отправке пустой команды (спасибо @michaelhood)nsq_to_file
и исправлениеnsqadmin
при отсутствии использования lookupdnsqd
. Для одного потребителя маленьких сообщений (< 4k) увеличивает пропускную способность ~400% и снижает количество аллоцирований ~30%.nsq_to_http
nsq_to_file
nsqadmin
nqd
для отсутствующих темnsq_to_http
nsqadmin
nsq_to_http
nsq_to_http
на выходnsq_to_file
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )