Назад
Cloudflare представив K2 у публічній беті: serverless потоки подій на базі R2
SiTech AI Team3 хв читання

Cloudflare представив K2 у публічній беті: serverless потоки подій на базі R2

Cloudflare випустив K2 у публічній беті — serverless примітив потоків подій, який зберігає дані у впорядкованому журналі на основі об'єктного сховища R2. Сервіс спочатку був створений для Basin Pipelines і є безкоштовним у період бети.

Cloudflare оголосив публічну бету K2 1 жовтня. K2 — це serverless примітив потоків подій на платформі для розробників: події в ньому зберігаються у вигляді впорядкованого журналу, а споживачі можуть читати їх із розподіленням навантаження між кількома читачами або отриманням усіх повідомлень. Сервіс повністю serverless, і дані не втрачаються навіть під час тривалої бездіяльності споживача.

K2 вирішує проблему RPC-архітектури: там відправник (producer) і споживач (consumer) мають узгоджуватися за масштабом і часом, а при відставанні споживача події втрачаються. K2 є стійким буфером між ними на базі об'єктного сховища R2 і дозволяє читачам працювати зі власним темпом.

Як це працює

Додавання (append) в об'єктне сховище неможливе, тому K2 спочатку накопичує записи в пам'яті, а потім записує цілий сегмент файлом; порядок і строго зростаючі офсети забезпечують атомарні операції R2, без окремого сервісу координації. Є невелика затримка: запис в об'єктне сховище повільніший за локальний диск, тому в початковій версії затримка випуску на 99-му процентилі становить приблизно 1 секунду.

K2 спочатку був створений для внутрішніх потреб і призначався як бекенд інжесту для Basin Pipelines: системі на базі pull-моделі потрібно було стійке зберігання отриманих подій, поки вони читалися і записувалися в R2. Зазвичай це робить Apache Kafka, але edge-мережа Cloudflare розгорнута у понад 335 містах, і запуск класичних розподілених систем там практично неможливий, тому команда обрала R2.

K2, Queues чи Pipelines?

Cloudflare має й інші примітиви асинхронної доставки: Queues та Basin Pipelines. Queues орієнтований на окремі завдання, які вимагають великих ресурсів або часу; він підтримує повторні спроби, відкладені завдання та dead-letter черги для невдалих спроб.

K2 призначений для високомасштабної передачі даних, тривалого зберігання та fan-out споживання; повідомлення надсилаються і читаються партіями, що підвищує ефективність, однак повторні спроби на рівні окремих повідомлень не працюють, а затримка випуску вища, ніж у Queues. Basin Pipelines — це serverless сервіс інжесту, який записує JSON-події в R2 або Basin Catalog; за рекомендацією Cloudflare, Pipelines варто обирати, якщо результат має потрапити в об'єктне сховище або таблиці Iceberg, а K2 — для структурованої обробки або інших цілей.

Доступність і ціни

K2 доступний для акаунтів з підпискою Workers Paid; ліміти бети — максимум 10 ГБ зберігання та швидкість випуску 30 МБ/с на одному потоці, вищі ліміти надаються за окремим запитом. У період бети використання безкоштовне; орієнтовні ціни — 0,04 долара за ГБ надісланих і прочитаних даних та 0,02 долара за ГБ на місяць зберігання.

У планах — вищий паралелізм запису, ключі та гарантії порядку на їх основі, доставка на базі push для Worker'ів, Express tier з низькою затримкою та drop-in підтримка клієнтів Apache Kafka.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.