1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/x7h66-mosn

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG_ZH.md 67 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 10:16 93ffbdb

Обновления

v1.0.1

Изменения

  • Протокол Bolt: состояние api.NoHealthUpstreamCode теперь сопоставляется с ResponseStatusNoProcessor (#2018) [@antJack].

Исправления ошибок

  • При запуске и работе MOSN по-прежнему должны разрешаться регистрация обратных вызовов для AppendGracefulStopStage и AppendBeforeStopStage (#2029) [@rayowang].
  • В журнале ошибок при панике корутины используются неверные переменные (#2019) [@antJack].

v1.0.0

Изменения

  • Добавлена поддержка GoAway в протоколе Bolt, которую можно включить через конфигурацию proxy (#1993) [@z2z23n0].
  • Поддержка большего количества конфигураций для проверки работоспособности HTTP-протокола (#1999) [@dengqian].
  • Реализован Admin API для просмотра версии (#2002) [@songzhibin97].
  • Изменены коды возврата при неудачной попытке горячего обновления (#2006) [@doujiang24].
  • Добавлен статус, указывающий на то, было ли горячее обновление инициировано активно или нет (#2003) [@doujiang24].
  • Поддерживается команда Stop (#1990) [@Jun10ng].

Исправления ошибок

  • Исправлена ошибка в StrictDnsCluster, когда при наличии нескольких доменных имён DNS результаты обновления домена были неправильными (#1994) [@Jun10ng].
  • Исправлена проблема с очисткой общей памяти в сценарии горячего обновления, которая приводила к ошибкам (#2011) [@nejisama].

v0.27.0

Новые функции

  • MOSN теперь поддерживает версию istio v1.10.6 по умолчанию. Быстрое переключение версий istio возможно с помощью команды make. Также поддерживается версия istio v1.5.2 (#1910) [@nejisama].
  • Добавлено новое правило маршрутизации, которое позволяет изменять заголовки запросов и ответов с использованием переменных (#1946) [@MengJiapeng].
  • Для проверки работоспособности Upstream добавлена возможность настройки интервала между первыми проверками (#1942) [@rickey17].
  • Добавлены новые способы проверки работоспособности на основе HTTP-протокола (#1942) [@rickey17].
  • Расширена возможность создания TLS Context при создании функций Listener и соединения (#1877) [@antJack].
  • Функции создания Listener и подключения поддерживают расширения (#1877) [@antJack].
  • XProtocol теперь поддерживает изящное завершение работы, а MOSN — изящное закрытие (#1922) [@doujiang24].
  • Интегрирован Holmes, который автоматически выполняет pprof (#1978) [@doujiang24].
  • Интерфейс SDS расширен новыми возможностями для синхронного получения сертификатов и их активного обновления (#1945) [@nejisama].
  • TLS SNI теперь можно настраивать с расширением (#1910) [@nejisama].

Изменения

  • Версия dubbo-go-hessian обновлена до v1.10.2 (#1896) [@wongoo].
  • Новое поле IdleTimeout добавлено в конфигурацию кластера Upstream (#1914) [hui-cha].
  • Конфигурация весов кластера и конфигурация по умолчанию перемещены в пакет config/v2 (#1970) [@jizhuozhi].
  • Переменная RawData теперь доступна для настройки в реализации XProtocol (#1972) [@antJack].
  • Новый параметр конфигурации для OriginalDst Filter: можно настроить использование локального адреса в качестве запасного варианта при переадресации на Listener (#1972) [@nejisama].
  • Новый параметр конфигурации для OriginalDst Cluster: можно изменить целевой адрес на localhost при пересылке запроса (#1972) [@nejisama].
  • Отказались от старого режима vendor, теперь используется go.mod (#1997) [@nejisama].

Рефакторинг

  • Реорганизованы управление состоянием и ожидаемыми этапами в MOSN, теперь они управляются модулем StageManager (#1859) [@doujiang24].
  • Сигнальные расширения больше не предоставляются разработчикам, вместо этого поведение при получении сигналов стало расширяемым (#1859) [@doujiang24].
  • Модуль ведения журнала использует независимый IoBuffer, чтобы избежать влияния проблем с журналом на повторное использование памяти запросов (#1936) [@nejisama].
  • Реорганизация логики повторного использования в модуле SDS, что позволяет использовать один и тот же сертификат для создания различных конфигураций TLS (#1958) [@nejisama].

Оптимизация

  • Пример модуля в Example теперь соответствует стандартам именования (#1913) [@scaat].
  • Удалены неиспользуемые поля из некоторых структур соединений (#1811) [@doujiang24].
  • Улучшена стратегия управления кучей в Edf балансировщике нагрузки (#1920) [@jizhuozhi].
  • Теперь возвращается более подробная информация при возникновении ошибки при получении переменной (#1952) [@antJack].
  • Оптимизирован сценарий памяти при повторном использовании: сброс после нормального ответа больше не влияет на память (#1956) [@wangfakang].
  • Память maglev балансировщика нагрузки оптимизирована (#1964) [@baerwang].
  • Ведение журнала улучшено: теперь iobuffer может выводить сообщения об ошибках, а также обрабатывать ошибки при ротации журналов (#1996) [@nejisama].

Устранение ошибок

  • Проблема с закрытием соединения и продолжением его использования при больших значениях StreamID в HTTP2 решена (#1900) [@jayantxie].
  • Ошибки форматирования в журнале HTTP-маршрутов устранены (#1915) [@scaat].
  • Ошибка компиляции в xprotocol go plugin в примере устранена (#1899) [@nearmeng].
  • Проблема, из-за которой OriginalDst не мог правильно получить IP, решена (#1931) [@alpha-baby].
  • Вероятность зависания соединения в параллельных сценариях устранена (#1949) [@alpha-baby].
  • Сбой синтаксиса в расширении интерфейса плагина istio исправлен (#1927) [LemmyHuang].
  • Возможное возникновение исключения нулевого указателя при доступе к некоторым переменным в прокси-сервере устранено (#1953) [@doujiang24]. Перевод текста:

Соединение закрыто: невозможно правильно определить причину закрытия (#1772) [@wangfakang].

  • Исправлено: проблема с нормальным перезапуском после остановки через Stop Listener (#1883) [@lemonlinger].
  • Исправлено: ошибка в формате вывода отладочных журналов при ошибке в процессе разбора StrictDNS (#1963) [@wangfakang].
  • Исправлено: вероятность ошибки деления на ноль из-за возможных проблем с вычислением веса балансировки нагрузки Edf (#1970) [@jizhuozhi].
  • Исправлено: потенциальное возникновение исключения нулевого указателя при вызове setDeadline у Listener'а (#1981) [@antJack].
  • Исправлено: опечатки (@Jun10ng, @fibbery).
  • Исправлено: невозможность выполнения теста на гонку из-за слишком большого количества горутин в юнит-тесте (#1898) [@alpha-baby].

v0.26.0

Несовместимые изменения

Для более естественного добавления расширенных протоколов новая версия была переработана, и XProtocol больше не является протоколом, а представляет собой структуру для облегчения реализации расширений протокола. Реализация расширенного протокола требует некоторых корректировок, подробности см. в руководстве по адаптации изменений протокола XProtocol (reports/xprotocol_0.26.0.md).

Новые функции

  • Добавлен фильтр ip_access на основе ACL-контроллера для исходного IP-адреса (#1797) [@Bryce-huang].
  • Разрешено расширение метода проверки Admin Api (#1834) [@nejisama].
  • Поддержка замены фиксированных этапов через конфигурацию с помощью transcoder filter (#1815) [@YIDWang].
  • Добавление метода SetConnectionState для соединений TLS в pkg/mtls/crypto/tls.Conn (#1804) [@antJack].
  • Введение новых этапов выполнения after-start и after-stop с возможностью регистрации функций обработки на этих этапах (@doujiang24).
  • Новый параметр конфигурации uds_dir для указания каталога сокетов домена Unix (#1829) [@dengqian].
  • Поддержка загрузки плагинов Go и преобразование протоколов с динамическим выбором преобразователя протоколов (@Tanc010).
  • Увеличение количества методов HTTP-протокола для более точного сопоставления динамических протоколов (#1870) [@XIEZHENGYAO].
  • Динамическая настройка вышестоящего протокола (#1808) [@YIDWang].
  • Динамическое определение максимального значения по умолчанию для HTTP (#1886) [@nejisama].

Изменения

  • Настройка максимального размера заголовка запроса по умолчанию для протокола HTTP до 8 КБ (#1837) [@nejisama].
  • Рефакторинг преобразования протоколов по умолчанию HTTP1 и HTTP2, удаление преобразования прокси и использование transcoder filter вместо него (@nejisama).
  • Использование фабрики зарегистрированных преобразователей вместо зарегистрированных преобразователей (@YIDWang).

Исправленные ошибки

  • Исправлена: возможность возникновения паники nil при повторном использовании буфера HTTP в условиях высокой параллельной нагрузки (@nejisama).
  • Исправлена: ошибка получения значения переменной response_flag (#1814) [@lemonlinger].
  • Исправлена: некорректная работа prefix_write в случае "/" (@Bryce-huang).
  • Исправлена: риск случайного удаления reconfig.sock нового MOSN при ручном завершении работы старого MOSN во время процесса горячего обновления (#1820) [@XIEZHENGYAO].
  • Исправлена: неправильная установка setupRetry в doretry при сбое запроса вверх по течению (#1807) [@taoyuanyuan].
  • Исправлена: необходимость переноса конфигурации унаследованного старого MOSN в новую структуру MOSN после горячего обновления (@XIEZHENGYAO).
  • Исправлена: отсутствие отправки resetStreamFrame вверх по потоку при отмене grpc клиента, что приводит к задержке завершения работы сервера (@XIEZHENGYAO).
  • Исправлена: необходимость установки resetReason перед закрытием stream connection для получения реальной причины (#1828) [@wangfakang].
  • Исправлена: выбор оптимального соответствия listener при наличии нескольких подходящих listeners, чтобы избежать ошибки 400 (@MengJiapeng).
  • Исправлена: вероятность возникновения паники при одновременном чтении и записи карты в результате обработки широковещательных сообщений HTTP2 (@XIEZHENGYAO).
  • Исправлена: утечка памяти в пуле соединений (binding connpool) в XProtocol (@Dennis8274).
  • Исправлена: размещение close logger в конце, чтобы обеспечить вывод логов при закрытии экземпляра MOSN (#1845) [@doujiang24].
  • Исправлена: возникновение паники из-за отсутствия инициализации codecClient при тайм-ауте PingPong типа соединения в XProtocol (#1849) [@cuiweixie].
  • Исправлена: использование значения по умолчанию при пустом значении unhealthyThreshold (@Bryce-huang).
  • Исправлена: предотвращение бесконечного цикла в алгоритме WRR балансировки нагрузки из-за неправильного выбора хоста (@alpha-baby).
  • Исправлена: исключение hijack из прямого ответа после преобразования (@nejisama).
  • Исправлена: предпочтение других здоровых хостов при высоком весе нездорового хоста в EDF wrr (@lemonlinger).
  • Исправлена: сбой прослушивания из-за ошибки в получении имени файла CACert в Istio LDS, приводящей к невозможности приёма запросов (#1893) [@doujiang24].
  • Исправлена: невозможность остановки goroutine в STRICT_DNS_CLUSTER при разборе DNS, вызывающая проблемы с host (@bincherry).

v0.25.0

Новые функции

  • Возможность удаления указанных полей в запросе через настройки маршрутизации (@wangfakang).
  • Поддержка перезагрузки WASM (@zu1k).
  • Интеграция с SEATA TCC, поддержка протокола HTTP (@dk-lockdown).
  • Трассировка boltv2 с поддержкой протокола tracelog. ГРП-фреймворк: добавлены фильтры статистики метрик

Внесены следующие изменения:

— добавлены расширения фильтров для сбора статистики метрик в ГРП-фреймворке (@wenxuwan);
— добавлена поддержка разбора кластера XDS, включая поддержку связанных полей DNS (@antJack).

Рефакторинг

Проведены следующие работы:

— проведено разделение кода ядра MOSN и кода, связанного с введением xDS, от кода Istio (@nejisama);
— обновлена версия proxy-wasm-go-host (@zhenjunMa);
— изменена логика конфигурации networkfilter для поддержки добавления и запроса интерфейсов (@antJack).

Оптимизация

Выполнены следующие действия:

— в Makefile режим выполнения заменён на «mod vendor» вместо «GO111MODULE=off» (@scaat);
— часть заархивированных данных перенесена в каталог mosn.io/pkg (@nejisama);
— оптимизирована функция балансировки нагрузки EDF: при первом выборе машины используется случайный выбор (@alpha-baby);
— повышена производительность функции балансировки нагрузки EDF (@alpha-baby);
— скорректирована обработка запросов и ответов на сердцебиение boltv2 (@nejisama);
— улучшено управление повторными попытками и оптимизация запросов Unary в HTTP2 (@XIEZHENGYAO);
— при установке GOMAXPROCS через переменную среды игнорируется ограничение на количество процессоров (@wangfakang);
— оптимизировано использование памяти при создании подмножеств (@dzdx);
— проведена оптимизация ГРП-фреймворка для обеспечения независимого запуска разных Listener на одном сервере (@nejisama).

Исправление ошибок

Исправлены следующие проблемы:

— исправлена проблема зависания при повторных попытках, когда возвращаемый адрес машины пуст (@XIEZHENGYAO);
— устранена ошибка обработки соединения в пуле сообщений (@RayneHwang);
— решена проблема паники при отсутствии инициализации драйвера трассировки (@nejisama);
— исправлены ошибки данных при построении исключений в ответе boltv2 (@nejisama);
— устранены проблемы с обработкой исключений при сбоях соединения HTTP2 (@XIEZHENGYAO);
— исправлены опечатки (@jxd134, @yannsun);
— исправлен вывод ResponseFlag в RequestInfo (@wangfakang);
— устранена проблема с пересчётом длины битов при пустых данных в кодировании протокола bolt/boltv2 (@hui-cha).

Версия 0.24.0

Новые функции

Добавлены следующие возможности:

— поддержка сбора информации OpenTracing с помощью Jaeger (@Roger);
— добавлен новый режим конфигурации переменных для маршрутизации, позволяющий изменять результаты маршрутизации путём изменения переменных (@wangfakang);
— обеспечена поддержка сопоставления портов в виртуальном хосте для соответствия маршрутам (@jiebin);
— реализована фильтрация envoy: header_to_metadata (@antJack);
— поддерживается горячее обновление UDS (@taoyuanyuan);
— добавлено логическое распределение нагрузки для подмножества, использующее список всех машин при отсутствии соответствия метаданным (@nejisama);
— обеспечивается изящное закрытие MOSN в ГРП-фреймворке (@alpha-baby).

Улучшения

Реализованы следующие улучшения:

— усовершенствован режим обновления проверки здоровья при изменении конфигурации кластера (@alpha-baby);
— добавлен интерфейс OnConnectionEvent в api.Connection (@CodingSinger);
— стратегия резервного распределения нагрузки по весу заменена на обычную стратегию распределения нагрузки (@alpha-baby);
— расширен тип значения интерфейса в модуле переменных MOSN (@antJack);
— подмножество использует ту же стратегию резервного распределения при определении количества машин и их наличия (@antJack).

Устранение ошибок

Устранены следующие проблемы:

— фильтр потока dubbo теперь автоматически распознаёт протоколы (@Thiswang);
— исправлено некорректное поведение при распределении нагрузки в режиме опроса при параллельной работе (@alpha-baby);
— устранено исключение при анализе адресов Unix (@taoyuanyuan);
— исправлена ошибка, из-за которой короткие соединения не работали в HTTP1 (@taoyuanyuan);
— память больше не утекает после разрыва соединения или разрушения канала при использовании TLS SM3 с комплектом National Security Bureau (@ZengKe);
— HTTP2 теперь поддерживает повторные попытки при сбросе соединения или разрыве канала (@taoyuanyuan);
— информация о хосте, полученная из пула соединений, теперь отображается правильно (@Sharember);
— предотвращено неправильное возвращение данных из кластера при выборе веса (@alpha-baby);
— проблема с тайм-аутом конфигурации маршрута XProtocol теперь устранена (@nejisama). Оптимизация Quick Start Sample @nejisama

Оптимизация обработки контекста по умолчанию при маршрутизации @nobodyiam

Оптимизация создания функции интерфейса Subset LoadBalancer @alpha-baby

Добавление примера использования плагина so для расширения протокола @yichouchou

Оптимизация способа получения переменной среды GOPATH в make-файле @bincherry

Поддержка архитектуры darwin + arrch64 @nejisama

Оптимизация метода открытия журнала @taoyuanyuan

Исправление ошибок

Исправление проблемы с обработкой URL-адресов, связанной с кодировкой @morefreeze

Исправление ошибки чувствительности к регистру при обработке URL-адресов @GLYASAI

Устранение утечки памяти в SM4-комплекте при обработке исключений @william-zk

v0.22.0

Новые функции

Новые возможности расширения Wasm @antJack

Новый x-bolt протокол в XProtocol, поддерживающий кодирование и декодирование на основе Wasm @zonghaishang

Возможность автоматического перенаправления сообщений на основе SO_ORIGINAL_DST при неудачной попытке автоматического распознавания протокола @antJack

Расширение XProtocol с поддержкой режима Go Plugin @fdingiit

Новая сетевая расширяемая прослойка @wangfakang

Поддержка Istio xDS v3 API @champly (ветка: istio-1.7.7)

Оптимизация

Удаление избыточного пути очистки в конфигурации StreamFilter @eliasyaoyc

Поддержка единого обратного вызова для настройки StreamFilterChain @antJack

FeatureGate поддерживает различные этапы запуска, устраняя глобальную блокировку состояния FeatureGate @nejisama

Добавлена поддержка трассировки в модуле Http2 @OrezzerO

Рефакторинг

Добавлен StageManager, разделяющий процесс запуска MOSN на четыре настраиваемых этапа @nejisama

Унификация типов в XProtocol и перемещение их в пакет mosn.io/api @fdingiit

В интерфейсе XProtocol добавлен метод GetTimeout вместо предыдущего способа получения переменных @nejisama

Исправление ошибок

Исправлена проблема конфликта одновременных запросов в прокси @nejisama

Исправлены уязвимости безопасности при обработке URL @antJack

Исправлен конфликт одновременного доступа при сохранении конфигурации маршрутизатора @nejisama

v0.21.0

Оптимизация

Обновление sentinel до версии 1.0.2 @ansiz

Сокращение буфера чтения tls для уменьшения потребления памяти tls @cch123

Увеличение количества комментариев и упрощение реализации пула соединений в xprotocol @cch123

Обновлены версии mosn registry @cadeeper @cch123

Реорганизация

Улучшена логика сопоставления заголовков маршрутизации, обеспечивающая поддержку универсальных маршрутов RPC @nejisama

Удалены некоторые константы, добавлены новые константы для описания переменных @nejisama

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

Исправление ошибок

Исправлена ошибка в статистике метрик при возникновении запроса @cch123

Исправлена ошибка внедрения переменных в HTTP-протоколе и ошибка, из-за которой HTTP2 не поддерживал перезапись маршрута @nejisama

Новые возможности

Поддержка Domain-Specific Language для маршрутизации @CodingSinger

StreamFilter поддерживает загрузку динамических библиотек, написанных на Go @CodingSinger

VirtualHost в конфигурации маршрутизации поддерживает конфигурацию per_filter_config @machine3

Поддерживает протоколы dubbo thrift @cadeeper

v0.20.0

Оптимизация

Оптимизирована обработка адресов TCP, включая обработку сбоев адресации с использованием префиксов перед попыткой разрешения UDS @wangfakang

Оптимизирован интервал попыток соединения в пуле соединений @nejisama

Обеспечена возможность глобального отключения циклического режима записи @nejisama

Оптимизированы примеры конфигурации и тестовые случаи для автоматического определения протоколов @taoyuanyuan

Переменные заголовка запроса заменены более эффективным механизмом @CodingSinger

Буфер каналов WriteBufferChan был объединён в пул для снижения нагрузки @cch123

Информация о сбоях обработки в MOSN добавлена в TraceLog @nejisama

Канал завершения чтения добавлен в обработку HTTP-протокола @alpha-baby

Усилена функция ротации журналов @nejisama

Реорганизация

Версия Go обновлена до 1.14.13 @nejisama

Способ расширения маршрутизации изменён с расширения цепочки маршрутов на расширение обработчиков маршрутов, что позволяет настраивать различные обработчики маршрутов @nejisama

Изменена конфигурация расширения MOSN для обеспечения последовательного анализа @nejisama

Исправление ошибок

Ошибка в dubbo после обновления до версии 2.7.3, из-за чего провайдер стал недоступен @cadeeper

  • Исправление проблемы, когда в режиме netpoll ошибки приводили к обработке UDS-соединений как TCP-соединений @wangfakang.
  • Исправление проблемы с некорректным получением HTTP-заголовка, когда он был установлен в пустую строку @ianwoolf.

Новые функции

  • Поддержка переноса конфигурации между старыми и новыми версиями MOSN через UDS, что решает проблему невозможности плавного обновления при использовании XDS для получения конфигурации @alpha-baby.
  • Поддержка автоматического определения протокола XProtocol @cadeeper.
  • Поддержка настройки параметра keepalive для XProtocol @cch123.
  • Более детальное отслеживание времени использования @nejisama.
  • Метрики загружаются по мере необходимости, чтобы избежать переполнения пространства метрик при большом количестве сервисов @champly.
  • Добавление функции установки значения по умолчанию для размера пула соединений XProtocol @cch123.
  • Поддержка режима netpoll @cch123.
  • Поддержка широковещательной функции @dengqian.
  • Получение конфигурации TLS из ответов LDS @wZH-CN.
  • Новый ответ ACK в SDS @wZH-CN.

v0.19.0

Оптимизация

  • Использование новейших методов оптимизации памяти для TLS @cch123.
  • Оптимизация журнала прокси для уменьшения утечек памяти @taoyuanyuan.
  • Увеличение максимального ограничения на количество подключений @champly.
  • При неудачной попытке получить переменную AccessLog используется «-» вместо неё @champly.
  • MaxProcs поддерживает автоматическое определение на основе ограничений использования CPU @champly.
  • Возможность указать кластер Istio для сети @champly.

Рефакторинг

  • Рефакторинговый фреймворк StreamFilter для снижения зависимости между фреймворком streamfilter и прокси, позволяя другим сетевым фильтрам повторно использовать фреймворк stream filter @antJack.

Исправления ошибок

  • Исправлена ошибка при получении URL в HTTP Trace @wzshiming.
  • Исправлена проблема, когда при разборе конфигурации xds не анализировался тайм-аут соединения @dengqian.
  • Исправлена ошибка, возникающая при получении переменной Hostname @dengqian.
  • Исправлена ошибка, когда tcp proxy некорректно закрывал соединение @dengqian.
  • Исправлен недостаток конфигурации по умолчанию в mixer filter, вызывающий проблему с нулевым указателем @glyasai.
  • Исправлена проблема с отсутствием корректной установки Content-length в прямых ответах HTTP2 @wangfakang.
  • Исправлена проблема с нулевым указателем в методе getAPISourceEndpoint @dylandee.
  • Исправлена проблема со слишком большим количеством таймеров, приводящая к увеличению использования памяти при накоплении записей @champly.
  • Исправлена проблема с отсутствующими статистическими данными при получении невалидных ответов от Dubbo Filter @champly.

v0.18.0

Новые функции

  • Добавлена возможность расширения конфигурационного файла MOSN @nejisama.
  • Введён инструмент настройки MOSN для улучшения опыта настройки пользователей mosn/configure @cch123.

Оптимизация

  • Избегание многократного копирования тела HTTP во время обработки HTTP-протокола @wangfakang.
  • Обновление пакета github.com/TarsCloud/TarsGo до версии 1.1.4 @champly.
  • Дополнены юнит-тесты для пула подключений @cch123.
  • Уменьшение использования памяти TLS-соединениями за счёт использования пула памяти @cch123.
  • Сокращение критического размера процесса обработки потока xprotocol для повышения производительности @cch123.
  • Удаление избыточного параметра в методе network.NewClientConnection и удаление метода Dispatch в структуре streamConn с проверкой ALPN @nejisama.
  • Добавление API TerminateStream в StreamReceiverFilterHandler, позволяющего асинхронно закрывать поток, передавая HTTP code во время обработки потока @nejisama.
  • Введение логики понижения уровня при неудачном TLS-рукопожатии на стороне клиента @nejisama.
  • Изменение способа вычисления хеш-значения TLS @nejisama.
  • Исправление опечатки в disable_log admin api @nejisama.

Исправления ошибок

  • Исправлено неудачное выполнение команды go mod tidy @champly.
  • Исправлено сообщение об ошибке ResourceExhausted: grpc: received message larger than max, возникающее при получении больших сообщений (более 4M) от XDS @champly.
  • Исправлено отсутствие тестов на устойчивость к ошибкам @wangfakank.
  • Исправлено неправильное поведение при установке MOSNConfig.servers[].listeners[].bind_port в значение false @alpha-baby.
  • Увеличено время ожидания для локальных записей, предотвращая OOM из-за большого количества горутин @cch123.
  • Исправлена бесконечная петля, вызванная таймаутом TLS @nejisama.
  • Исправлена проблема с неизменёнными данными после использования метода SetData в struct dubbo.Frame @lxd5866. Запрос:

申请 @wangfakang

  • 优化 SDS Client 使用读写锁获取 @chainhelen
  • 更新 hessian2 v1.7.0 库 @cch123
  • 修改 NewStream 接口, от обратного вызова до синхронного вызова @cch123
  • 重构 XProtocol 连接池, поддержка pingpong режима, мультиплексирования и привязки соединения @cch123
  • 优化 XProtocol мультиплексирование, поддержка настраиваемого количества соединений на одном хосте по умолчанию 1 @cch123
  • 优мизация регулярных выражений маршрутизации, избегание избыточных конфигураций @wangfakank

Перевод:

Заявка от [@wangfakang]: — оптимизация использования блокировок чтения-записи для SDS Client от [@chainhelen]; — обновление библиотеки hessian2 до версии 1.7.0 от [@cch123]; — изменение интерфейса NewStream с режима обратного вызова на синхронный вызов от [@cch123]; — рефакторинг пула соединений XProtocol с поддержкой режимов pingpong, мультиплексирования и привязки соединений от [@cch123]; — оптимизация мультиплексирования XProtocol, поддержка настраиваемого числа соединений на одном узле по умолчанию равного 1 от [@cch123]; — улучшение регулярных выражений для маршрутизации, предотвращение избыточных настроек от [@wangfakank].

Примечание: в запросе присутствуют гиперссылки, специальные теги форматирования в markdown, которые не были переведены. Административный API

Вывод:

@dengqian: добавлен интерфейс для вывода текущего числа запросов прокси.

@zonghaishang: добавлена поддержка заголовка HostRewrite.

Оптимизация

Вывод:

@wangfakang, @wenxuwan: обновлены зависимости tars, оптимизирован вывод логов прокси.

Время по умолчанию для DNS Cache изменено на 15 секунд.

Оптимизировано сопоставление параметров HTTP-маршрута.

Обновлена библиотека fasthttp.

Оптимизирован процесс пересылки запросов Dubbo.

Добавлена возможность настраивать максимальный размер тела запроса HTTP.

Исправление ошибок

Вывод:

Исправлены ошибки, связанные с обработкой attachment в Dubbo Decode.

Устранена проблема, из-за которой поток мог быть создан до установления соединения HTTP2.

Исключена ситуация, когда при обработке HTTP2 возникал пустой указатель на трейлер.

Обработаны нестандартные заголовки HTTP-запросов.

Исправлена ошибка, приводящая к панике при разрыве соединения во время обработки HTTP-запроса.

Решена проблема с блокировкой чтения и записи в реестре Dubbo.

v0.13.0

Новые функции

Вывод:

Поддержка Strict DNS Cluster.

Обработка потоков с использованием GZip Stream Filter.

Бета-версия обнаружения сервисов Dubbo.

Поддержка изоляции потока при одномашинном сбое.

Интеграция с Sentinel для ограничения потока.

Оптимизация

Вывод:

Улучшена реализация EDF LB.

Административный API оптимизирован для получения конфигурации.

Изменён режим обновления состояния хоста с асинхронного на синхронный.

Обновление библиотеки Dubbo для оптимизации производительности Dubbo Decode.

Метрики в Prometheus оптимизированы для более эффективного вывода данных.

Улучшено управление состоянием MOSN.

Исправление ошибок

Вывод:

Исправлен конфликт параллелизма при регистрации обратного вызова для проверки здоровья.

Ошибка, связанная с некорректной обработкой пустых конфигураций, устранена.

Проблема с DUMP при длинных значениях ClusterName/RouterName решена.

Ошибки при получении протокола XProtocol исправлены.

При создании StreamFilter контекст теперь обрабатывается корректно.

v0.12.0

Новые функции

Вывод:

Поддержка Skywalking.

Добавлен этап выполнения Receive Filter после выбора хоста в MOSN маршрутизации.

Реализована поддержка потоковой передачи HTTP2.

Интерфейс KnownFeatures добавлен в FeatureGate для отображения текущего состояния.

Введён способ получения ресурсов запроса (PATH, URI, ARG) без привязки к конкретному протоколу.

Представлены новые алгоритмы балансировки нагрузки: ActiveRequest LB и WRR LB.

Оптимизация

Вывод:

XProtocol оптимизирован для улучшения работы с сердцебиением.

Зависимость от Dubbo обновлена до версии 1.5.0.

API адаптирован для предоставления информации о состоянии хоста.

Функции плавного отключения улучшены.

Логика выбора хоста упрощена.

Производительность установления HTTP-соединений повышена.

Цикл ротации журналов оптимизирован.

Проведена работа над типографическими ошибками.

Исправление ошибок

Вывод:

Исправлена проблема с внедрением ошибочной конфигурации xDS.

Ошибка с зависанием HEAD метода в HTTP устранена.

Проблемы с отображением StatusCode в XProtocol решены.

Исправлено некорректное поведение DirectReponse при повторных попытках. v0.11.0

Новые функции

  • Поддержка расширения Listener Filter, возможность прозрачного перехвата на основе Listener Filter @wangfakang.
  • В механизме переменных добавлен метод Set @neverhook.
  • При сбое SDS Client автоматически выполняется повторная попытка и обработка исключений @pxzero.
  • Улучшен TraceLog, поддерживается внедрение контекста @taoyuanyuan.
  • Добавлена FeatureGate auto_config, динамически обновляемая конфигурация при включении этой функции сохраняется в начальной конфигурации @nejisama.

Рефакторинг

  • Рефакторингу подвергся XProtocol Engine, также заново реализован SofaRPC протокол @neverhook:
    • удалён фильтр SofaRpc Healthcheck, вместо него используется встроенный в xprotocol heartbeat;
    • удалены исходные возможности протокола SofaRpc по преобразованию протоколов (protocol conv), добавлена основанная на stream filter реализация расширенных возможностей преобразования протоколов;
    • в xprotocol добавлены idle free и keepalive;
    • оптимизирован анализ протокола.
  • Изменён метод Encode для HTTP2 протокола @taoyuanyuan.
  • Упрощён интерфейс LDS @nejisama.
  • Модифицирована модель маршрутизации, упразднён connection_manager @nejisama.

Оптимизация

  • Оптимизирован динамический анализ доменных имён в upstream @wangfakang.
  • Оптимизирована упаковка TLS, добавлены журналы ошибок, изменены таймауты совместимости @nejisama.
  • Таймауты оптимизированы с использованием механизма переменных @neverhook.
  • Зависимость Dubbo в библиотеке анализа обновлена до 1.5.0 @cch123.
  • Новый скрипт миграции путей добавляет поддержку ОС @taomaree.

Исправление ошибок

  • Исправлена проблема потери query string при пересылке HTTP2 протокола @champly.

v0.10.0

Новые функции

  • Поддерживается многопроцессный режим плагинов.
  • Начальная конфигурация поддерживает параметр service-meta.
  • Абстрактный uds может быть смонтирован в режиме sds socket.

Рефакторинг

  • Часть кода mosn основной библиотеки перемещена в пакет mosn.io/pkg (github.com/mosn/pkg).
  • Определения части интерфейсов mosn перемещены в пакет mosn.io/api (github.com/mosn/api).

Оптимизация

  • Базовый модуль журнала перемещён в mosn.io/pkg, улучшена реализация журнала в mosn.
  • Улучшена работа FeatureGate.
  • Реализована обработка сбоев при получении конфигурации SDS.
  • Когда CDS динамически удаляет кластер, он синхронно останавливает проверку работоспособности соответствующего кластера.
  • Обратный вызов функции обновления сертификата при срабатывании теперь включает конфигурацию сертификата в качестве параметра.

Исправление ошибок

  • Проблема утечки памяти, возникающая при сбое SOFARPC Oneway запросов, устранена @champly.
  • Проблема возврата 502 ошибки при получении нестандартного HTTP ответа исправлена @champly.
  • Конфликт параллелизма, который мог возникнуть при настройке DUMP, исправлен @champly.
  • Ошибка в статистике размера запроса и ответа TraceLog исправлена @champly.
  • Проблема потери времени ожидания из-за одновременной записи соединения исправлена @champly.
  • Ошибки сериализации исправлены @champly.
  • Проблема чрезмерного использования памяти из-за сохранения слишком большого буфера при повторном использовании памяти во время чтения соединения исправлена @champly.
  • Проблемы реализации Dubbo, связанные с XProtocol, оптимизированы @champly. Из GitHub.com/alipay/sofa-mosn в sofastack.io/sofa-mosn

Оптимизация

  • Оптимизирована структура вывода журнала ошибок.
  • Усовершенствована реализация анализа конфигурационного файла JSON.
  • Оптимизирован процесс повторного использования памяти для сценариев с использованием больших буферов.
  • При первом запуске оптимизировано использование общей памяти при обработке метрик.

Исправление ошибок

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

v0.4.2

Новые функции

  • Поддержка новой модели конфигурационных файлов:
    • Конфигурация кластера может быть установлена как отдельный каталог.
    • Маршрутная конфигурация может быть установлена как отдельный каталог.
    • Поддерживается несколько конфигураций сертификатов.
    • Обеспечена совместимость со старой моделью конфигурационных файлов.
  • Добавлены базовые сведения о метриках:
    • Версия.
    • Используемая версия Go.
    • Состояние работы MOSN.
    • Адрес прослушивания.
  • Реализована фильтрация метрик.
  • Регистрация изменений состояния MOSN теперь сопровождается обратным вызовом.
  • Включен режим Request oneway.
  • Уровень журнала ошибок теперь можно массово изменять или массово отключать доступ к журналу.

Рефакторинг

  • Реорганизован поток прокси-серверов:
    • Каждый запрос обрабатывается отдельным Goroutine.
    • Вместо обратных вызовов используется конечный автомат, что делает обработку запросов последовательной.
  • Переработана модель выбора пула соединений, чтобы избежать выбора в пользу неисправных бэкэндов.

Оптимизация

  • Улучшена производительность вывода метрик.
  • Улучшен вывод журнала ошибок.
  • Повышена производительность разбора протокола SOFA RPC.
  • Расширена реализация контекста, снижена вложенность уровней при совместимости со стандартным контекстом, улучшена производительность.

Исправления ошибок

  • Исправлены ошибки в разборе части конфигурации JSON.
  • Исправлен баг, который мог привести к утечке Goroutine в определённых сценариях HTTP.
  • Исправлена проблема, которая могла вызвать панику в случае параллельного выполнения операций ввода-вывода.
  • Исключено дублирование информации HOST.

v0.4.1

Новые функции

  • Метрики поддерживают вывод в формате Prometheus.
  • Метрики позволяют исключать конфигурации.
  • Динамическое включение и выключение журналов, а также динамическая настройка уровня журнала ошибок.
  • Протокол HTTP поддерживает 100 continue.
  • Поддерживается протокол Tars.
  • Соединения SOFARPC отправляют пульс в режиме ожидания.
  • Создаются соединения на основе подпротоколов SOFARPC.
  • Новый способ плавного обновления.
  • Реализация активного мониторинга здоровья расширяется, по умолчанию используется tcp dial.
  • Модуль памяти расширяется.
  • Балансировка нагрузки расширяется, по умолчанию используются алгоритмы маршрутизации.
  • Анализ конфигурационных файлов расширяется, по умолчанию используется анализ JSON.

Реорганизация

  • Структура пакета stream была переработана, некоторые API-интерфейсы были изменены.
  • Логирование было преобразовано в асинхронный режим.
  • Был переработан модуль преобразования xDS.
  • Была переработана реализация цепочки маршрутов.
  • Некоторые общие функции были перемещены в каталог utils.

Оптимизация

  • Маршрут сопоставления оптимизирован для поддержки сопоставления KV в определённых сценариях.
  • Коды состояния запроса унифицированы и преобразованы в стандартные коды состояния HTTP.
  • Производительность Tracer была улучшена.
  • Персистентность конфигурационных файлов была оптимизирована.
  • Скорость динамического обновления списка бэкэнд-машин была увеличена.

Исправления ошибок

  • Исправлена тупиковая ситуация в workpool.
  • Исправлено неправильное управление трейлером ошибки HTTP2.
  • Параллельное использование буфера больше не вызывает проблем.

v0.4.0

Новые функции

  • Через HTTP2 поддерживается gRPC.
  • Автоматическое распознавание протоколов HTTP и HTTP2.
  • Трассировщик для протокола SOFA RPC.
  • Дополнительные функции маршрутизации:
    • Стратегия повтора настраивается.
    • Настраивается стратегия прямого ответа.
    • Добавление и удаление пользовательских полей в заголовке HTTP.
    • Хост и URI протокола HTTP могут быть перезаписаны.
    • Реализуется расширяемая маршрутизация.
  • Ограничение QPS и ограничение скорости.
  • Внедрение отказов.
  • Поддержка Mixer.
  • Получение конфигурации MOSN во время работы.

Реорганизация

  • Архитектура протокола была переработана для поддержки расширения подпротокола SOFA RPC.

Оптимизация

  • Поддержка протокола HTTP была оптимизирована, производительность увеличилась примерно на 30%.
  • Поддержка протокола HTTP2 была оптимизирована, производительность увеличилась примерно в 100 раз.
  • TCP Proxy был оптимизирован.

Исправления ошибок

  • Ошибка плавного обновления была исправлена.
  • Ошибки обработки протоколов HTTP и HTTP2 были исправлены.
  • Были устранены некоторые потенциальные утечки памяти.

v0.3.0

Новые функции

  • Плавный перенос метрик.
  • Плавный перенос TLS.

Оптимизация

  • Использование памяти и загрузка процессора при анализе протокола SOFARPC были оптимизированы.

v0.2.1

Новые функции

  • Одноузловой переключатель TLS.
  • Поддержка Dubbo через XProtocol.

v0.2.0

Новые функции

  • Маршруты с настраиваемым весом.
  • Клиент XDS реализован:
    • Поддержка LDS.
    • Поддержка CDS.
  • Четырехуровневый фильтр расширяется.
  • Расширение конфигурации TLS.
  • Обработка ввода-вывода на основе epoll.
  • Усиление возможностей расширения анализа протокола.
  • XProtocol позволяет расширять протоколы.

Оптимизация

  • Рамки для повторного использования памяти были реализованы, что снизило затраты на выделение памяти.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/x7h66-mosn.git
git@api.gitlife.ru:oschina-mirror/x7h66-mosn.git
oschina-mirror
x7h66-mosn
x7h66-mosn
master