APISIX обеспечивает облачную сервисную платформу для государственных закупок

Jing Yan

Jing Yan

January 31, 2024

Case Study

Обзор

О Zhengcaiyun

Основанная Департаментом финансов провинции Чжэцзян и группой Alibaba, компания Zhengcaiyun специализируется на разработке передовой облачной платформы, адаптированной для государственных закупок. Построенная на основе интернета, их платформа использует возможности облачных вычислений и технологий больших данных, сосредоточив усилия на цифровизации и управлении государственными закупками. Платформа объединяет онлайн-транзакции, процессы надзора и сервисные предложения для государственных закупок, позволяя клиентам осуществлять более удобные, эффективные и прозрачные закупки.

Проблемы

  • Туннелирование Dubbo-to-HTTP в Zhengcaiyun вызвало сложности в преобразовании данных протоколов, что повлияло на производительность внутренних компонентов.

  • Двойная сериализация в Dubbo, включающая JavaBeanDescriptor и Hessian2, создала потенциальные накладные расходы на производительность для Zhengcaiyun.

  • Расширения бизнес-логики шлюза Dubbo требовали больше усилий в разработке и развертывании из-за неэффективности синхронных вызовов в однопоточном режиме в плане HttpClient Zhengcaiyun.

Результаты

  • Интеграция APISIX упростила преобразование Dubbo-to-Dubbo в Zhengcaiyun, снизив задержки и повысив общую производительность системы.

  • Благодаря APISIX, лаконичный дизайн Dubbo и долговременные соединения обеспечивают значительно более высокий Tps по сравнению с HTTP, минимизируя затраты на соединения для Zhengcaiyun.

  • Используя единый протокол, Zhengcaiyun минимизирует накладные расходы, обеспечивая эффективную и легковесную передачу данных между компонентами.

Предыстория

Zhengcaiyun_Platform

Базирующаяся в провинции Чжэцзян, платформа Zhengcaiyun функционирует как автономная система микросервисов, предоставляя услуги филиалам в различных провинциях. Она предоставляет государственным ведомствам платформу для оптимизации закупок и позволяет частное развертывание для негосударственных организаций, таких как банки. Для облегчения передачи данных между сетями Zhengcaiyun запустила проект "Highway" в 2022 году, объединив сетевые решения для создания единого высокоскоростного кросс-сетевого опыта.

Несмотря на использование шлюза Dubbo и протокола HTTP, Zhengcaiyun столкнулась с проблемами при реализации проекта "Highway", которые могут быть решены с помощью APISIX.

Проблемы до использования APISIX

До внедрения шлюза APISIX Zhengcaiyun столкнулась с несколькими проблемами в своей инфраструктуре, что побудило ее искать более эффективное и оптимизированное решение.

API-шлюз

  • Режим ввода-вывода: Из-за сложностей сети Zhengcaiyun выбрала HTTP в качестве канала для передачи данных через туннель Dubbo-to-HTTP, который затем распаковывался на месте назначения. Одним из недостатков этого подхода была необходимость преобразования данных протоколов в этом туннеле, особенно при достижении шлюза Dubbo. Некоторые компоненты, разработанные Zhengcaiyun самостоятельно, могли не достигать оптимальной производительности.

  • Двойная сериализация: При работе с двойной сериализацией используется объект JavaBeanDescriptor, API в Dubbo. Бизнес-объекты не могут быть напрямую сериализованы в параметрах во время сериализации и десериализации, что требует их инкапсуляции в SDK для преобразования JavaBeans в структуру, внутреннюю для Dubbo. После достижения места назначения этот процесс обращается, чтобы обеспечить плавную сериализацию и десериализацию бизнес-объектов в параметрах. Кроме того, существует дополнительный уровень сложности из-за использования Dubbo Hessian2 для сериализации. Использование Hessian2 для двойной сериализации может привести к значительным накладным расходам на производительность.

  • Другие бизнес-расширения: Шлюз Dubbo требует определенных бизнес-расширений, не только на центральном шлюзе, но и на локальном шлюзе кластера. Кроме того, Zhengcaiyun нуждается в некоторых готовых к развертыванию функциях, таких как ограничение скорости.

Передача протоколов

  • Различные HTTP-клиенты могут передавать избыточную информацию в заголовках.

  • Хотя HTTP может отправлять множество запросов непрерывно, он должен ждать возврата одного запроса перед отправкой следующего, что приводит к низкой эффективности параллелизма.

  • План HttpClient, используемый Zhengcaiyun, принял подход синхронных вызовов в однопоточном режиме, что требует ожидания завершения вызова перед продолжением последующих операций. В сценариях с высокой конкуренцией этот подход крайне неэффективен. С ростом объема бизнеса в Zhengcaiyun ранее используемые решения постепенно стали недостаточными, что потребовало обновления.

Почему APISIX

Zhengcaiyun решила заменить свой внутренний шлюз Dubbo на APISIX и приняла протокол Dubbo в качестве туннельного протокола вместо традиционного HTTP.

Учитывая потенциальные проблемы, связанные с их собственным шлюзом, они предпочли не выделять чрезмерные ресурсы в этой области. Вместо этого они планировали интегрировать готовое профессиональное решение, чтобы сэкономить ресурсы разработки и повысить эффективность. Решение выбрать APISIX было обусловлено следующими факторами:

  • Активное сообщество, отличный код: APISIX имеет активное сообщество с открытым исходным кодом, что обеспечивает высокое качество кода.

  • Надежная архитектура, исключительная производительность: Разработанный на основе высокопроизводительного OpenResty, APISIX достигает превосходной производительности как с архитектурной, так и с дизайнерской точек зрения, удовлетворяя основные требования Zhengcaiyun к шлюзу.

  • Замечательная расширяемость: APISIX демонстрирует замечательную расширяемость, удовлетворяя индивидуальные требования Zhengcaiyun. По сути, Zhengcaiyun стремится получить высокую производительность, подобную NGINX, сохраняя при этом гибкость для расширения функциональности.

Why APISIX_Dubbo

Достижения после использования APISIX

Снижение накладных расходов на передачу протоколов

В среде, где различные компоненты могут общаться с использованием разных протоколов, накладные расходы на преобразование форматов данных могут быть значительными. Однако APISIX предоставил единый протокол, который обеспечивает согласованность во всем коммуникационном канале Zhengcaiyun. Эта стратегия не только упрощает процесс обмена данными Zhengcaiyun, но и устраняет необходимость постоянного перевода между различными протоколами.

Гибкая и отзывчивая коммуникационная структура

Благодаря интеграции с APISIX, Zhengcaiyun установила прямое преобразование Dubbo-to-Dubbo. Эта интеграция служит важной оптимизацией, снижая задержки и повышая общую производительность архитектуры компании. Прямое преобразование Dubbo-to-Dubbo минимизирует промежуточные шаги, обычно связанные с процессом сериализации, предоставляя более гибкую и отзывчивую коммуникационную структуру для Zhengcaiyun.

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

Снижение задержек и максимальное использование ресурсов

В традиционной настройке каждый запрос обычно требует отдельного соединения, что приводит к потенциальным накладным расходам и увеличению задержек. Однако с мультиплексированием долговременных соединений в APISIX Zhengcaiyun преодолела это ограничение. Возможность одновременной передачи нескольких запросов через одно постоянное соединение максимизирует использование ресурсов и снижает временные накладные расходы, связанные с установлением и разрывом соединений для каждого запроса.

Эта функция особенно полезна в сценариях, где между компонентами системы Zhengcaiyun обмениваются многочисленные небольшие запросы. Мультиплексирование долговременных соединений оптимизирует процесс коммуникации, позволяя компании эффективно управлять и обрабатывать несколько запросов одновременно. В результате система становится более гибкой и отзывчивой, способной справляться с увеличенной нагрузкой с улучшенной эффективностью.

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

Установление структуры расширения протокола уровня 4

APISIX помог Zhengcaiyun внедрить структуру расширения протокола уровня 4 xRPC, позволяя разработчикам компании адаптировать протоколы для конкретных приложений. С помощью xRPC APISIX поддерживает прокси-реализации для различных основных протоколов приложений. Пользователи также могут вводить свои частные протоколы на основе TCP, предлагая точность, аналогичную прокси протокола HTTP, и повышенный контроль на уровне 7. Используя расширение xRPC APISIX, Zhengcaiyun эффективно внедрила возможность прямой пересылки протокола Dubbo, обеспечивая полную передачу протокола Dubbo.

Итог

В ответ на сложности, связанные с проблемами передачи данных между сетями, Zhengcaiyun предприняла активные меры, запустив инновационный проект "Highway". Этот стратегический шаг был отмечен эффективным использованием APISIX, что привело к значительному улучшению производительности шлюза. Помимо улучшения производительности, интеграция APISIX способствовала ощутимому снижению затрат на преобразование протоколов. Более того, эта инициатива успешно достигла упрощенного и консолидированного подхода на уровне промежуточного программного обеспечения, оптимизируя обработку данных и коммуникацию в сетевой инфраструктуре.

Tags: