Во время моей предыдущей стажировки автор отвечал за работу инфраструктуры стабильности отдела. Одной из задач было отвечать за раскраску. Реализация и проверка трафикаSDK, конкретно я отвечаю только за одну часть всего процесса окрашивания, но для этой статьи я хочу использовать раскраску, опубликованную технической командой Dewu. трафика Практическая серия статей,В сочетании с моим собственным реальным опытом разработки,Позвольте мне рассказать о некоторых моих личных скромных мнениях.
Серия статей технической команды Dewu:
Под микро-Служить архитектуру,Проблема зависимости каналов, вызванная большим количеством Служить, станет затяжным кошмаром в процессе разработки и обслуживания.,использоватьраскраска Технология трафика может очень хорошо справиться с этой проблемой.
раскраска трафика просто означает маркировку и окраску запрошенного потока.,Тогда запрос будет переносить всю информацию о метке по всей ссылке.,планирование потоков и другие функции могут выполняться через теги.
на основераскраска трафика может реализовывать множество функций, таких как логика оттенков серого, сине-зеленое развертывание, изоляция плавательных дорожек; стресс-тест ссылкиждать。
Когда у нас есть несколько требований для параллельной разработки, и если каждое требование необходимо тестировать независимо, наиболее прямым способом является развертывание еще нескольких сред, но это приведет к следующим проблемам:
Одним из решений вышеуказанной проблемы является раскраска. трафика,Это также можно понимать как изоляцию от окружающей среды.,Конкретный подход разделен на следующие три этапа:
В частности, когда мы готовимся к разработке требования, нам необходимо настроить версию в модифицированном приложении, и информация об этой версии будет храниться в метаданных центра регистрации.
Затем создайте плавательную дорожку (независимую среду), соответствующую требованию для развертывания. Вам нужно только развернуть приложение с измененным требованием. Последующие приложения, от которых зависит приложение, не требуют повторного развертывания, поскольку, если соответствующий поставщик услуг не может быть найден в текущей среде, он будет перенаправлен в стабильную среду, чтобы найти его, если в текущей среде нет соответствующего поставщика услуг. стабильной среде, будет сообщено об ошибке.
С помощью раскраски трафика мы можем достичь следующих целей:
R&D иногда запускает службы локально для отладки определенной проблемы. Преимущество заключается в том, что они могут быстро воспроизводить проблемы в тестовой среде и вовремя находить проблемные коды. Однако, поскольку локально запущенные службы также будут зарегистрированы в центре регистрации, запросы из тестовой среды могут быть перенаправлены в службу, запущенную локально отделом исследований и разработок. Код службы, локально запущенный отделом исследований и разработок, может быть не последним, что приводит к исключениям вызовов.
В настоящее время широко используемое решение этой проблемы — заблокировать функцию регистрации службы во время локального запуска, то есть не регистрировать ее, чтобы она не маршрутизировалась обычными тестовыми запросами.
Если у тебя есть раскраска трафикафункция,При локальной разработке Служить укажите собственный номер версии.,Пока это не соответствует обычной тестовой версии. Обычные запросы на тестирование не будут поступать на экземпляр, зарегистрированный для исследований и разработок.
Для оттенков серого на уровне интерфейса управление оттенками серого в настоящее время выполняется внутри приложения. Но на уровне приложения в настоящее время не существует особенно хорошего способа управления оттенками серого.
Например, существует техническое требование изменить клиент Redis с Lettuce на Jedis. Оттенки серого в этом сценарии находятся на уровне приложения. Текущий метод — опубликовать узел, а затем завершить процесс публикации. в оттенках серого. Он определяется общим количеством экземпляров службы и не может гибко контролироваться.
Если есть раскраска трафика,Вы можете отправить новый узел,Обновите версию этого узла,Например, предыдущая версия была V1.,Тогда недавно выпущенная версия — V2. Прежде всего, версия V1 должна соответствовать всем производственным требованиям.,Можно управлять через шлюз для пересылки потока в версию V2 определенным образом.,Например, белый список пользователей,область,Соотношение пользователей и так далее. Если у вас возникнут какие-либо проблемы, вы можете в любой момент переключить поток обратно на V1.,Очень удобно.
Еще предстоит проделать большую работу, если служба хочет корректно и без потерь работать в автономном режиме. Например, при публикации публикуемая служба сначала будет отключена от центра регистрации, но кэш службы все равно останется. информация об экземпляре внутри приложения, которой необходимо подождать определенный период времени для кэширования. После завершения очистки соответствующий целевой экземпляр не будет запрошен.
Если он реализован на основе окрашивания, информация об экземпляре (IP:PORT), которая должна быть отключена, будет передана на шлюз через центр конфигурации для обработки окрашивания. Информация о окрашивании будет следовать за запросом по всему каналу, балансируя нагрузку. компонент в приложении и промежуточное программное обеспечение, такое как MQ. Информация о целевом экземпляре, который необходимо перевести в автономный режим, будет фильтроваться таким образом, чтобы к экземпляру, который будет переведен в автономный режим, не поступал трафик.
В настоящее время основная версия представляет собой скользящее развертывание. Преимущество скользящего выпуска заключается в том, что он имеет низкую стоимость и не требует дополнительных ресурсов для развертывания. Это просто пряник и яма, которую можно заменять медленно. Недостаток заключается в том, что выпуск занимает много времени, а зависимость от полной ссылки слишком серьезна. Если зависимости испорчены до выпуска, это будет онлайн-ошибка.
Решить эту проблему со скоростью публикации можно на основе раскраски трафикаосознать Сине-зеленое развертывание. То есть повторное развертывание версии V2 при выпуске,Количество экземпляров в этой версии V2 остается таким же, как и в V1.,Поскольку в этой версии V2 нет потока,Так что никакой зависимости,Все могут публиковать одновременно,Подождите, пока все разошлют,Вы можете распределять поток через шлюз,Сначала раздайте немного потока версии V2 для проверки.,Если проблем нет, можно медленно увеличивать поток.,Затем выпустите версию контейнера V1.
Скорость выпуска действительно улучшилась, но проблема в том, что стоимость сине-зеленого развертывания слишком высока, и стоимость ресурсов приходится удвоить. Хотя старые ресурсы перерабатываются после выпуска, ваш общий пул ресурсов все равно должен соответствовать. эти две версии параллельно ОК.
Итак, существует ли компромисс, который может повысить эффективность выпуска без увеличения затрат на ресурсы?
После завершения выпуска мы начнем масштабировать версию V2, а затем проверим ее. После проверки другая половина экземпляров может быть освобождена. Таким образом, общий объем ресурсов не изменится, но существует более серьезная проблема: если половина экземпляров будет остановлена напрямую, смогут ли оставшиеся экземпляры поддерживать текущий трафик? Все приложения в рамках транзакции предназначены для пользователей C-конца, и трафик, скорее всего, достигнет большого объема за короткий период времени.
Полный стресс-тест Ссылки незаменимы для бизнеса в сфере электронной коммерции. Ежегодно проводится N крупных продаж, и для обеспечения стабильности крупных продаж необходимо заранее провести стресс-тестирование. Среди них; стресс-тест Основная идея ссылок — это различие между потоком. Необходимо различать, является ли поток обычным запросом пользователя или потоком стресс-тестирования с платформы стресс-тестирования.
Различать только поток,Только после этого можно будет провести соответствующее испытание под давлением.,Например, база данных,Redis и другим потокам нужна маршрутизация к теневой библиотеке. Поток легко маркировать на основе раскраски трафика.,Таким образом различают виды потока.
За этот контент автор также отвечал во время моей стажировки. трафикаSDK, конкретная идея реализации показана на рисунке ниже:
Ядром всей раскраски трафикаSDK на самом деле является аспект,В масштабируемостидизайн,Я разделил весь SDK для окрашивания на четыре модуля.,Как показано ниже:
Здесь решающее значение имеют три момента:
(Здесь необходимо решить проблему прозрачной передачи между потоками)
Рассмотрим его в двух частях:
Давайте сначала посмотрим на конкретную реализацию двух вышеупомянутых проблем в Dewu:
Регистрация услуги – выявление окрашенных узлов:
Преобразование MQ – идентификация и обработка сообщений MQ:
Основное решение MQ заключается в том, что сообщения, отправляемые производителем сообщений среды окрашивания, потребляются только потребителями среды окрашивания. Если среда окрашивания не имеет узла-потребителя, он будет потребляться потребителями базы. среда.
Здесь обсуждались два подхода:
Техническая группа Dewu выбрала второй вариант. Ниже приводится подробное описание второго варианта.
Как показано на рисунке:
После решения задачи прозрачной передачи тегов красителя и логической обработки тегов красителя остается, как донести теги красителя до инициатора трафика. По сути, это вставить теги красителя в поле x-infr-flowtype. заголовок.
Список среды окрашивания получается через интерфейс, предоставляемый платформой публикации, для выбора каждой стороной входа в трафик.
В текущем процессе продвижения бизнеса основные участники, с которыми сталкиваются, примерно следующие:
До сих пор Вся трансформация бизнеса в основном завершена,Как структурировать, Как от красящего потока прозрачно передавать стандарты Будет понятен полный набор процессов, таких как трафика, способы идентификации узлов раскраски и обработка логики раскраски ключей после идентификации.
Во время моей стажировки автор отвечал лишь за самое простое звено всего процесса окрашивания, то есть с помощью раскраски. Технология трафика реализует динамическую регулировку давления во время опрессовки и после прочтения раскраски технической команды Dewu. После того, как трафика реализовал серию статей на практике, я понял, что раньше не имел понимания раскраски. Общий когнитивный уровень трафика низкий, поэтому подвожу итог этой статьи.
раскраска В технологии трафика, как правило, относительно легко разобраться, с помощью раскраски трафика Технология может решить проблемы конфликтов тестовой среды и стабильности тестовой среды.,По сравнению с предыдущим решением с несколькими независимыми средами,,Также наблюдается относительно большая экономия затрат. И мы также можем попытаться использовать возможности окрашивания, чтобы решить проблему выделения оттенков серого в производстве.,Я верю, что это также принесет хорошие результаты.