Обновление архитектуры поиска Mafengwo на основе параллельного агента Golang.

Go

Поисковый бизнес — важная точка входа для распределения сотового трафика. Когда многие пользователи используют Mafengwo, они будут целенаправленно и активно искать различную информацию, связанную с их потребностями в поездках.

Таким образом, в Mafengwo существует множество последующих модулей для поиска делового взаимодействия, в основном включая направления, POI, популярные достопримечательности, продукты питания, торговые центры, отели, вопросы и ответы, стратегии, авиабилеты и билеты на поезд и т. д., возвращая результаты поиска в реальном времени. своевременно и точно, помогая пользователям принимать персонализированные решения о поездках.

Перед лицом увеличения трафика техническая команда Mafengwo активно пытается оптимизировать и обновить архитектуру поиска, чтобы обеспечить стабильность и производительность поискового бизнеса.

Фон схемы

По историческим причинам взаимодействие между службой поиска до оптимизации и нижестоящими модулями в основном заключается в вызове функций, предоставляемых каждым нижестоящим модулем, и использовании последовательных вызовов.

Рисунок 1: Бизнес-архитектура сотового поиска Ma и техническая система

Система поисковых технологий

  • Хранилище — MySQL, Memcache

  • Взаимодействие модуля — вызов функции

  • Поиск — Elasticsearch

Поиск бизнес-архитектуры

Мы абстрагируем поисковый бизнес на три функциональных модуля:

1. Система принятия решений

Отвечает за принятие решения о том, какие модули (путевые заметки, товары и т. д.) следует отображать, а также за порядок, в котором следует отображать каждый модуль, на основе таких данных, как намерения пользователей, стратегии работы и журналы кликов, в сочетании с соответствующими алгоритмами и моделями система принятия решений.

2. Agent

Отвечает за определение отображаемых модулей в соответствии с системой принятия решений и получение данных о модулях (таких как путевые заметки, товары и т. д.) от Elasticsearch и бизнес-партнеров.

3. Format

  1. HTTP Sever