проблемное явление
Сегодня я внезапно получил предупреждающее сообщение RocketMQ следующего содержания:
Напомните некоторые данные без потребления и генерации стека.
ОткрытымRocketMq-Console-NgПросмотрите форму ниже:
Примечание:Первая реакцияПодписаться на несколько тем в группе потребителей?(Почему так скептически, следующий анализ).
по командеstatsAll используется для запроса статистики Topic и Consumer tps.:
sh mqadmin statsAll -n namesrv
Не нашли проблем, очень странно? К счастью, я уже видел исходный код и могу только отлаживать исходный код.
Отладка исходного кода
Эта статья не посвящена объяснению процесса исходного кода, а затем я буду медленно анализировать часть исходного кода, когда у меня будет время.Чтобы реализовать балансировщик нагрузки, потребитель будет повторно выполнять Rebalance каждый раз, когда узел добавляется или уменьшается. Выбор по умолчанию — получить все очереди и получить соответствующую группу.Все последующие cidAll (все потребители), а затем аналогично операциям пейджинга...
Сделайте точку останова на эту позицию и обнаружите странные явления:
Я понимаю, почему я вижу это здесь.RocketMq-Console-NgУбедитесь, что многие из следующих пустых и нет потребителей.Так как cidAll имеет 0, 2 и 3, всего очередей 16. Если cidAll показывает 4, то каждому клиенту должно быть выделено 4, но поскольку 0, 2 , и 3 все распределяются один раз.Часть исходного кода:
Примечание:Что это за явление, наверное, ясно, следующий акцент, почему это происходит?
Устранение неполадок
Результат запроса через команду RocketMQ все тот же:
Увидев это, я задаюсь вопросом, запускался ли экземпляр потребления много раз, а код все еще отсутствует Я действительно не могу случайно проверить конфигурацию tomcat, и я приятно удивлен, обнаружив:После общения с пользователем было обнаружено, что развертывание не было перезапущено, и проблема с перезапуском была решена.быть решенным
Оглядываясь назад на то, почему это произошло, RocketMQ забыл множество процессов, поэтому я нашел время, чтобы пройтись по нему еще раз, чтобы разобраться с этой проблемой.
День только начинается, с нетерпением жду вашего дальнейшего внимания, давайте вместе отправимся в мир RocketMQ! ! !
Предыдущие статьи серии RocketMQ
- 1 способ заставить ваш RocketMQ работать лучше, чем ожидалось
- RocketMQ (1): отладка исходного кода
- Побочная статья Rocketmq (1): командная строка разработки
- RocketMQ (6): новый взгляд на namerv
- RocketMQ (5): предварительное исследование namerv
- проверка CRC
- RocketMQ (2): связь RPC
- пазлы RocketMQ
- Быстрый старт RocketMQ
- Сценарии приложений MQ
- Конфигурация развертывания кластера RocketMQ
- Али RocketMQ
Если вы чувствуете себя вознагражденным после прочтения, пожалуйста, поставьте лайк, подпишитесь и добавьте официальную учетную запись [Ingenuity Zero], чтобы узнать больше захватывающей истории! ! !
Присоединяйтесь к Планете Знаний и обсуждайте вместе!