Jul 06, 2023
Cloudflare Workers представляет API-интерфейс Connect() для создания TCP-сокетов
Домашняя страница InfoQ Новости Сотрудники Cloudflare
Домашняя страница InfoQ Новости Cloudflare Workers представляет API-интерфейс Connect() для создания TCP-сокетов
28 мая 2023 г., чтение на 2 минуты
к
Ренато Лосио
На недавней неделе разработчиков Cloudflare анонсировала Worker API для создания исходящих TCP-сокетов. Новый API сокетов позволяет разработчикам подключаться обратно к инфраструктуре на основе TCP напрямую из Worker, включая базы данных.
Доступная в виде API среды выполнения, функция Connect() возвращает сокет TCP, который позволяет разработчикам читать и записывать данные до тех пор, пока соединение не останется открытым. Рабочие уже могут взаимодействовать с конечными точками HTTP и другими сервисами Cloudflare, но подавляющее большинство баз данных требуют, чтобы клиенты подключались путем открытия прямого TCP-сокета. Брендан Ирвин-Брок, менеджер по продуктам Cloudflare, и Мэтт Сильверлок, директор по продуктам Cloudflare, объясняют:
С помощью Workers мы стремимся поддерживать стандартные API, которые поддерживаются в браузерах и небраузерных средах, где это возможно, (...) но в отношении TCP-сокетов мы столкнулись с проблемой — не существовало четкого общего стандарта для всех сред выполнения. Мы постарались включить лучшие элементы существующих API и предложений и намерены внести свой вклад в будущие стандарты.
Осенью прошлого года Cloudflare вместе с Vercel и Shopify основали WinterCG, новую группу сообщества, занимающуюся функциональной реализацией стандартизированных веб-API в средах разработки на основе JavaScript, не связанных с веб-браузером.
Доступ к новому API осуществляется путем импорта функции подключения из Cloudflare:sockets. Одним из распространенных случаев использования является создание подключения к базе данных, например:
Источник: https://blog.cloudflare.com/workers-tcp-socket-api-connect-databases/
Хотя pg, драйвер базы данных JavaScript для PostgreSQL, уже поддерживается, драйверы MySQL mysql и mysql2 пока не поддерживаются. Ирвин-Брок и Мэтт Сильверлок предупреждают:
Для каждого запроса создается новое соединение. Это одна из самых больших текущих проблем подключения к базам данных из бессерверных функций на всех платформах (...) мы уже работаем над более простыми подходами к объединению пулов соединений для наиболее популярных баз данных.
В будущем сеть доставки контента планирует добавить больше функций, включая поддержку входящих соединений TCP и UDP, как просят некоторые разработчики, а также протоколов приложений на основе QUIC.
API-интерфейс Connect() был не единственной новой функцией, анонсированной на Неделе разработчиков 2023: Cloudflare представила Secrets Store, решение для безопасного управления секретами приложений, улучшения D1, бессерверной базы данных Cloudflare и потребительский параллелизм для очередей службы обмена сообщениями. Кроме того, Cloudflare объявила об интеграции баз данных для Neon, PlanetScale и Supabase on Workers. Карл Хорки, основатель UpLeveled, пишет в Твиттере:
Никаких прокси-серверов, таких как Neon или других бессерверных/пограничных провайдеров, вы просто подключаетесь в обычном режиме через TCP. Звучит здорово, потенциально намного важнее, чем другие недавние анонсы пограничных баз данных.
Каждый открытый сокет TCP учитывается при расчете максимального количества открытых соединений, которые могут быть одновременно открыты в Workers, и TCP-соединения не могут быть созданы на порту 25 для отправки электронной почты на почтовые SMTP-серверы.
Представлено: Шоном Читтенденом, техническим директором.
Сохраните свое место
Написание статей для InfoQ открыло множество дверей и расширило возможности карьерного роста. для меня. Мне удалось тесно пообщаться с экспертами и лидерами мнений, чтобы узнать больше о темах, которые я освещал. И я также могу распространять свои знания среди более широкого технологического сообщества и понимать, как технологии используются в реальном мире.
Я открыл для себя программу для участников InfoQ в начале этого года и с тех пор наслаждаюсь ею! Помимо предоставления мне платформы для обмена знаниями с мировым сообществом разработчиков программного обеспечения, система коллегиального обзора InfoQ значительно улучшила мое письмо.