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

OSCHINA-MIRROR/mirrors-Puma_old1

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
6.0-Upgrade.md 7.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 18.04.2025 12:28 f6c362e

Добро пожаловать в Puma 6: Солнце.

Изображение от Todd Trapani, Unsplash

Puma 6 приносит улучшения производительности для большинства приложений, экспериментальную поддержку Rack 3, поддержку Sidekiq 7 Capsules и многое другое.

Вот что вы должны сделать:

  1. Просмотрите раздел Обновления ниже, чтобы найти разрушающие изменения, которые могут повлиять на вас.
  2. Обновите до версии 6.0 в вашем Gemfile и разверните.
  3. Откройте новый баг-репорт, если вы найдете какие-либо проблемы.
  4. Присоединяйтесь к нам в создании Puma! Мы приветствуем новичков. См. CONTRIBUTING.md.

Для полного списка изменений см. History.md.

Что нового

Puma 6 в основном о нескольких приятных улучшениях производительности и нескольких разрушающих изменениях API, которые мы откладывали довольно долго.

Улучшенная производительность

Мы улучшили пропускную способность и задержку в Puma 6 в нескольких областях.1. Пропускная способность для больших разбитых ответных тел 3-10 раз выше Разбитые ответные тела >100kb должны быть 3-10 раз быстрее, чем в Puma 5. Текстовые ответные тела должны быть примерно на 10% быстрее. 2. Пропускная способность для файловых ответов в 3 раза выше Файловые ответы (например, активы) должны быть примерно в 3 раза быстрее. 3. wait_for_less_busy_worker теперь по умолчанию, что означает более низкие задержки для серверов с высокой загрузкой wait_for_less_busy_worker был экспериментальной функцией в Puma 5 и теперь является по умолчанию в Puma 6. Эта функция заставляет каждый дочерний рабочий процесс Puma в режиме кластера ждать перед тем, как начать прослушивание сокета, и время ожидания пропорционально N * number_of_threads_responding_to_requests. Это означает, что вероятность того, что запрос будет обработан наименее загруженным дочерним рабочим процессом Puma, прослушивающим сокет, выше. Многие пользователи сообщили, что эта опция была стабильной и уменьшала среднюю задержку, особенно в средах с высокой нагрузкой и загрузкой.### Экспериментальная поддержка Rack 3

Rack 3 теперь доступен и мы начали поддержку Rack 3. Пожалуйста, откройте баг-репорт, если вы найдете какие-либо несовместимости.

Поддержка Sidekiq 7 Capsules

Sidekiq 7 (вскоро выпущен) вводит Capsules, что позволяет вам запускать сервер Sidekiq внутри вашего сервера Puma (или любого другого Ruby-процесса). Мы добавили поддержку, позволяя вам передавать данные в run_hooks, см. issue #2915.

Обновление

Проверьте следующий список, чтобы убедиться, что вы не зависите от каких-либо из этих поведений:1. Константы конфигурации, такие как DefaultRackup, были удалены, см. #2928 для полного списка.

  1. Мы изменили названия следующих переменных окружения: DISABLE_SSL теперь PUMA_DISABLE_SSL, MAKE_WARNINGS_INTO_ERRORS теперь PUMA_MAKE_WARNINGS_INTO_ERRORS, и WAIT_FOR_LESS_BUSY_WORKERS теперь PUMA_WAIT_FOR_LESS_BUSY_WORKERS.
  2. Опция nakayoshi_fork конфигурации была удалена без замены.
  3. wait_for_less_busy_worker теперь включен по умолчанию. Если вы не хотите использовать эту функцию, вам нужно добавить wait_for_less_busy_worker false в ваш конфиг.
  4. Мы удалили следующие публичные методы на Puma::Server: Puma::Server#min_threads, Puma::Server#max_threads. Вместо этого вы можете передать конфигурацию как опцию к Puma::Server#new. Это может привести к поломке некоторых гемов (capybara, например).
  5. Мы удалили следующие константы: Puma::StateFile::FIELDS, Puma::CLI::KEYS_NOT_TO_PERSIST_IN_STATE и Puma::Launcher::KEYS_NOT_TO_PERSIST_IN_STATE, а также Puma::ControlCLI::COMMANDS.
  6. Мы больше не поддерживаем Ruby 2.2, 2.3 или JRuby на Java 1.7 или ниже.
  7. Поведение remote_addr изменилось. При использовании заголовка set_remote_address: "header_name" функциональности, если заголовок не передается, REMOTE_ADDR теперь устанавливается на физический адрес соединения вместо постоянного установления на 127.0.0.1. При возникновении ошибки, препятствующей получению физического адреса соединения, REMOTE_ADDR теперь устанавливается на неуказанное исходное адресное пространство ('0.0.0.0') вместо '127.0.0.1'.Ранее Puma поддерживал любые HTTP-методы и передавал их приложению. Теперь мы принимаем только следующие 8 HTTP-методов, основываясь на RFC 9110, раздел 9.1. Полный список HTTP-методов содержится в IANA HTTP Method Registry.
HEAD GET POST PUT DELETE OPTIONS TRACE PATCH

С Puma 6.2 эти методы могут быть переопределены через supported_http_methods в вашем конфигурационном файле, см. Puma::DSL#supported_http_methods. Затем обновите ваш Gemfile:gem 'puma', '< 7'

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

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

1
https://api.gitlife.ru/oschina-mirror/mirrors-Puma_old1.git
git@api.gitlife.ru:oschina-mirror/mirrors-Puma_old1.git
oschina-mirror
mirrors-Puma_old1
mirrors-Puma_old1
master