استریم رویداد

Apache Kafka مدیریت‌شده برای استریم رویداد

Kafka 4 با احراز هویت SASL، کمتر از دو دقیقه آماده است. تاپیک‌ها روی دیسک ماندگارند و مصرف‌کننده‌ها می‌توانند تاریخچه را دوباره بخوانند.

نسخه‌ها
4.3 (پیش‌فرض)، 4.2، 4.1 و 3.9
احراز هویت
SASL/PLAIN
ماندگاری
تاپیک‌ها روی دیسک
پورت
9092
لوگوی Kafka

رویدادها، ماندگار و قابل بازخوانی

Kafka برای جریان پیوسته‌ی رویداد ساخته شده است: لاگ تغییرات، کلیک‌استریم، داده‌ی سنسور و ارتباط سرویس‌ها در معماری رویدادمحور. پیام‌ها پس از مصرف حذف نمی‌شوند و هر consumer group از جای خودش می‌خواند.

اتصال با SASL/PLAIN احراز هویت می‌شود. میزبان، نام کاربری و رمز را از sakoocloud db credentials بردارید و به اپ بدهید؛ کلاینت‌هایی مثل kafkajs، confluent-kafka و franz-go با همین سه مقدار وصل می‌شوند.

مناسب برای

  • معماری رویدادمحور
  • پایپ‌لاین داده و ETL
  • لاگ تغییرات و audit
  • کلیک‌استریم و تحلیل بلادرنگ

از ساخت تا اتصال

  1. ساخت

    نسخه را انتخاب کنید.

    --type kafka --version 4.3.0
  2. اطلاعات اتصال

    میزبان، نام کاربری و رمز SASL را بگیرید.

    db credentials
  3. تعریف متغیرها

    مقدارها را به‌صورت متغیر محیطی به اپ بدهید.

    env set KAFKA_HOST=…

خروجی ساخت سرویس

sakoocloud db
sakoocloud db create --name events --type kafka --version 4.3.0
✔ Provisioning events · db_4n8x2p
sakoocloud db credentials db_4n8x2p
sakoocloud env set KAFKA_HOST=… KAFKA_USER=… KAFKA_PASSWORD=•••• --app my-api

ساخت کلاستر

با CLI یا از کنسول.

terminal
sakoocloud db create --name events --type kafka --version 4.3.0

تنظیمات

متغیرهایی که تعریف می‌کنید

اپ و سرویس را در یک پروژه بگذارید، مقدارها را از sakoocloud db credentials بردارید و با sakoocloud env set تعریف کنید. نام متغیرها دلخواه است.

متغیر پیشنهادیمقدار
KAFKA_HOSTآدرس broker (پورت 9092)
KAFKA_USERنام کاربری SASL
KAFKA_PASSWORDرمز SASL

اتصال از اپ

میزبان و اطلاعات SASL را از متغیرها بخوانید.

import { Kafka } from "kafkajs";

const kafka = new Kafka({
  brokers: [`${process.env.KAFKA_HOST}:9092`],
  sasl: {
    mechanism: "plain",
    username: process.env.KAFKA_USER,
    password: process.env.KAFKA_PASSWORD,
  },
});

رانتایم‌هایی که معمولاً به آن وصل می‌شوند

خطاهای رایج

خطای احراز هویت SASL

علتمکانیزم یا اطلاعات ورود اشتباه است.

راه‌حلمکانیزم را PLAIN بگذارید و نام کاربری و رمز را دوباره از sakoocloud db credentials بردارید.

Topic not found

علتتاپیک هنوز ساخته نشده است.

راه‌حلتاپیک را با ابزار ادمین کلاینت یا از کد بسازید.

broker با کمبود حافظه متوقف می‌شود

علتحجم پیام یا تعداد پارتیشن از منابع انتخابی بیشتر است.

راه‌حلبا sakoocloud db resize حافظه را افزایش دهید.

پرسش‌های متداول

ZooKeeper لازم است؟

نه. Kafka 4 با KRaft اجرا می‌شود و ZooKeeper ندارد.

پیام‌ها تا کی نگهداری می‌شوند؟

طبق retention هر تاپیک که خودتان تنظیم می‌کنید؛ داده روی دیسک ماندگار است.

Kafka Connect و Schema Registry دارید؟

این سرویس خود broker است. ابزارهای جانبی را می‌توانید به‌عنوان اپ Docker کنارش اجرا کنید.

جزئیات بیشتر در راهنمای Kafka در مستندات و مرجع CLI.

سریع‌ترین مسیر از کد تا انتشار.

ابتدا ابزار خط فرمان را نصب کنید، سپس همین‌جا امتحان کنید. (بنویسید، یا یکی از پیشنهادهای پایین ترمینال را بزنید)

~/projects/my-app
امتحان کنید