Эта статья основана на выступлении Сон Бина, старшего технического эксперта Meituan, на саммите ArchSummit Architect.
задний план
Meituan Takeaway разрабатывался в течение пяти лет, а исследование логистики в режиме реального времени также прошло более трех лет.Бизнес вырос с нуля до начала обретения формы.В течение всего процесса он накопил некоторый опыт в построение распределенных систем с высокой степенью параллелизма. К основным выводам можно отнести два момента:
-
Мгновенный логистический бизнес имеет очень низкую устойчивость к сбоям и большим задержкам, хотя сложность бизнеса возрастает, но он также требует, чтобы система была распределенной, масштабируемой и устойчивой к стихийным бедствиям. Система логистики в реальном времени постепенно реализует обновление архитектуры распределенной системы поэтапно и, наконец, устраняет риск простоя системы.
-
Сосредоточив внимание на трех основных элементах стоимости, эффективности и опыте, система логистики в реальном времени тесно интегрирована с технологией ИИ, включая ценообразование, расчетное время прибытия, планирование, планирование мощностей, вмешательство в мощности, субсидии, бухгалтерский учет, голосовое взаимодействие, майнинг LBS, бизнес. эксплуатация и техническое обслуживание, а также мониторинг показателей.Прорывы в бизнесе сочетаются со структурными модернизациями для достижения эффекта увеличения масштаба, сохранения опыта и снижения затрат.
В этой статье в основном представлены технические препятствия и проблемы, возникающие при эволюции архитектуры распределенной системы мгновенной логистики Meituan слой за слоем:
- Большой масштаб заказов и гонщиков, а также сверхкрупномасштабная вычислительная проблема согласования процесса спроса и предложения.
- В случае праздников или плохой погоды эффект агрегации заказов и пик трафика более чем в десять раз превышают обычные.
- Выполнение логистики является ключевым связующим звеном между онлайн- и офлайн-соединениями с чрезвычайно низкой отказоустойчивостью, отсутствием простоев, отсутствием потери заказов и чрезвычайно высокими требованиями к доступности.
- Крайне необходимы данные в режиме реального времени и точность данных, и они очень чувствительны к задержкам и аномалиям.
Логистическая структура Meituan в режиме реального времени
Платформа распределения логистики Meituan в режиме реального времени в основном фокусируется на трех вещах: во-первых, предоставление пользователям SLA для выполнения контракта, включая расчет времени доставки ETA, стоимость доставки и т. д.; во-вторых, в контексте многоцелевого (стоимость, эффективность, опыт) оптимизация, чтобы соответствовать наиболее подходящему гонщику; в-третьих, обеспечить вспомогательное принятие решений в течение всего процесса выполнения контракта гонщиком, включая интеллектуальный голос, рекомендации по маршруту и напоминания о магазине.
За серией услуг стоит поддержка мощной технической системы Meituan и полученной в результате системы бизнес-архитектуры распределения, платформ, алгоритмов, систем и услуг, основанных на архитектуре. Огромная логистическая система неотделима от поддержки архитектуры распределенной системы, и эта архитектура должна обеспечивать высокую доступность и высокий уровень параллелизма.
Распределенная архитектура — это система архитектуры по отношению к централизованной архитектуре. Распределенная архитектура применяет теорию CAP (непротиворечивость, доступность, доступность, устойчивость к разделам). В распределенной архитектуре служба развертывается на нескольких одноранговых узлах, узлы обмениваются данными через сеть, а несколько узлов вместе образуют кластер служб для предоставления высокодоступных и согласованных служб.
В первые дни Meituan была разделена на несколько вертикальных сервисных архитектур в соответствии с областями бизнеса; с развитием бизнеса многоуровневая сервисная архитектура была разработана с точки зрения доступности. Позже развитие бизнеса становилось все более и более сложным, после рассмотрения с точки зрения эксплуатации и обслуживания, качества и т. д. оно постепенно превратилось в микросервисную архитектуру. Здесь в основном соблюдаются два принципа: не рекомендуется приступать к проектированию микросервисной архитектуры слишком рано, и хорошая архитектура развивается, а не проектируется заранее.
Практика распределенных систем
На приведенном выше рисунке показана типичная структура распределенной системы в рамках технологической системы Meituan: с опорой на общедоступные компоненты и службы Meituan реализованы возможности расширения раздела, аварийного восстановления и мониторинга. Интерфейсный трафик будет распределяться и балансироваться по нагрузке через HLB; внутри раздела службы и службы будут взаимодействовать через OCTO для предоставления таких услуг, как регистрация служб, автоматическое обнаружение, балансировка нагрузки, отказоустойчивость и публикация в градациях серого. Конечно, также возможно общаться через очереди сообщений, такие как Kafka и RabbitMQ. Используйте Zebra на уровне хранилища для доступа к распределенной базе данных для операций чтения и записи. использоватьCAT(Распределенная система мониторинга Meituan с открытым исходным кодом) для сбора, составления отчетов и мониторинга распределенных бизнес- и системных журналов. Распределенный кеш использует комбинацию Squirrel+Cellar. Распределенное планирование задач осуществляется через Crane.
На практике необходимо решить несколько проблем: типичная — масштабируемость кластера, масштабируемость кластера с состоянием относительно низкая, быстро увеличить мощность машины и разгрузить трафик невозможно. В то же время также будут проблемы с точками доступа узлов, включая неравномерность ресурсов, неравномерное использование ЦП и так далее.
Прежде всего, техническая группа серверной части дистрибутива обновляет архитектуру, чтобы преобразовать узлы с сохранением состояния в узлы без состояния.Благодаря возможности параллельных вычислений узлы малого бизнеса могут разделить вычислительную нагрузку, чтобы добиться быстрого расширения.
Во-вторых, решить проблему непротиворечивости.Для сценариев, где необходимо записывать как БД, так и кеш, кеш деловой записи не может гарантировать согласованность данных.Meituan в основном использует шину данных для решения проблемы.Шина данных - это высокая доступность, низкая -latency, Система передачи в реальном времени изменений базы данных с высокой степенью параллелизма и обеспечением согласованности данных. Через восходящий поток Databus вы можете отслеживать изменения бизнес-бинлага, передавать информацию об изменениях в ES и другие базы данных или другие системы KV через конвейеры и использовать функции высокой доступности Databus, чтобы гарантировать, что данные в конечном итоге могут быть синхронизированы с другими системами. .
Третье — это то, над чем мы работали: обеспечить высокую доступность кластера, главным образом, по трем аспектам, большинство из которых — это тестирование полного канала и предварительная оценка пиковой емкости, периодическая проверка работоспособности кластера и проверка работоспособности кластера. Учения по случайным отказам (услуги, машины, компоненты). Создание нештатных аварийных сигналов (производительность, бизнес-показатели, доступность) в процессе; быстрое обнаружение сбоев (сбой одиночной машины, сбой кластера, сбой IDC, сбой компонента, сбой службы); сбор изменений системы до и после сбоя. После мероприятия сосредоточьтесь на откате системы, расширении емкости, ограничении тока, взрывании и понижении версии, ядерном оружии.
Быстрое развертывание и аварийное восстановление одного IDC
После одного сбоя IDC входная служба может выявлять сбои и автоматически переключать трафик; быстрое расширение одного IDC, заблаговременная синхронизация данных, заблаговременное развертывание службы и открытие входящего трафика после готовности; все службы, выполняющие синхронизацию данных и трафик Распределение должно иметь автоматическое обнаружение неисправностей и автоматическое устранение неисправностей, услуги, возможность расширения или сокращения мощности в подразделениях IDC.
Многоцентрированная попытка
Meituan IDC использует разделы в качестве единицы, и есть полные ряды ресурсов, и разделы не могут быть расширены. План Meituan состоит в том, чтобы сформировать виртуальный центр с несколькими IDC, с центром в качестве подразделения; услуги развертываются в центре без разбора; емкости центра недостаточно, и новые IDC добавляются напрямую для расширения емкости.
единичная попытка
По сравнению с многоцентровым юнитизация является лучшим решением для аварийного восстановления разделов и расширения емкости. Что касается маршрутизации трафика, Meituan в основном использует регионы или города для маршрутизации в зависимости от бизнес-характеристик. При синхронизации данных будут задержки в разных местах. При аварийном восстановлении SET необходимо обеспечить, чтобы в случае возникновения проблемы с локальным или удаленным SET SET можно было быстро переключить на другие SET для переноса трафика.
Основные технические возможности и платформа для интеллектуальной логистики
Платформа машинного обучения — это универсальная платформа для обучения моделей в автономном режиме и онлайн-приложений алгоритмов. Целью создания этой платформы является решение проблемы многих сценариев применения алгоритмов, многократного создания колес и непостоянного качества данных в режиме онлайн и в автономном режиме. Если процесс нечеткий и непоследовательный, возникнут такие проблемы, как низкая эффективность итераций и проблемы с качеством данных при онлайн-развертывании функций и моделей.
JARVIS — это платформа AIOps для интеллектуального управления и обслуживания бизнеса, направленная на обеспечение стабильности. Он в основном используется для решения различных проблем, таких как множество источников сигналов тревоги при сбое системы, большое количество повторяющихся сигналов тревоги, а эффективная информация легко ускользает. Кроме того, в прошлом ошибки в работе и обслуживании небольших распределенных кластеров в основном анализировались и обнаруживались людьми и опытом, что было неэффективно и медленно в обработке. Поэтому платформа AIOps необходима для решения этих проблем.
будущие вызовы
После рассмотрения и рассмотрения мы обнаружили, что проблемы в будущем велики.Микросервисы больше не являются «микро».После увеличения сложности бизнеса услуги станут раздутыми. Во-вторых, в кластерах ячеистых сервисов любая небольшая задержка может привести к эффекту усиления сети. Кроме того, сложная топология службы, способы быстрого обнаружения и устранения сбоев также являются проблемой, на которой должны сосредоточиться специалисты AIO. Наконец, после унификации, от эксплуатации и обслуживания на основе кластера до эксплуатации и обслуживания на основе единиц, отрасль поставила большие задачи перед возможностями бизнес-развертывания Meituan.
об авторе
Сонг Бин, старший технический эксперт Meituan, давно занимается архитектурой распределенных систем и обеспечением стабильности систем с высокой степенью параллелизма. В настоящее время является техническим руководителем группы внутренней логистики. Он присоединился к Meituan в 2013 году и с нуля участвовал в создании системы Meituan для доставки еды на вынос и системы логистики в режиме реального времени. Теперь возглавьте команду, которая будет нести ответственность за исследования и разработки, эксплуатацию и обслуживание технических платформ, таких как планирование, клиринг и расчеты, LBS, ценообразование и другие бизнес-системы, платформы данных алгоритмов и платформы обеспечения стабильности. Недавно я сосредоточился на направлении AIOps и исследовал, как лучше обеспечить стабильность системы в условиях высокой параллелизма и распределенной системной архитектуры.
Предложения о работе
Техническая команда Meituan по доставке ищет старших технических экспертов и архитекторов в области LBS, платформы планирования и выполнения, платформы расчетов, направления AIOps, платформы машинного обучения и направления разработки алгоритмов. Вместе создайте крупнейшую в отрасли единую дистрибьюторскую сеть и платформу, работающую в режиме реального времени, столкнитесь с проблемами сложного бизнеса и высокого одновременного трафика и вступите в эпоху комплексного и интеллектуального дистрибьюторского бизнеса. Заинтересованные студенты могут отправить свои резюме наsongbin@meituan.com, Чен Cheng13@Meituan.com.