Sobes.tech
Middle

Kafka Connector nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Kafka Bağlayıcı - bu Apache Kafka-da Kafka ilə xarici sistemlər arasında (məlumat bazaları, fayl sistemləri, bulud saxlama və s.) xüsusi kod yazmadan inteqrasiya üçün çərçivədir. O, inteqrasiya detalları ilə məşğul olmadan məlumatların hərəkətini standartlaşdırılmış bir şəkildə təmin edir.

İki növ bağlayıcı mövcuddur:

  • Mənbə Bağlayıcılar: Xarici mənbələrdən Kafka-ya məlumat çəkir.
  • Hədəf Bağlayıcılar: Kafka-dan xarici sistemlərə məlumat ixrac edir.

Kafka Connect-in əsas komponentləri:

  • Connect İşçiləri: Bağlayıcıların və tapşırıqların işlədiyi proseslər. Onlar standalone (inkişaf və sınaq üçün) və ya distributed (istehsal üçün, uğursuzluğa davamlılıq və miqyaslandırma dəstəyi ilə) rejimdə işləyə bilər.
  • Bağlayıcılar: Məlumatların hərəkətini təmin edən məntiqi nümayəndəlik. Hansı məlumatların və hara köçürüləcəyini müəyyən edir.
  • Tapşırıqlar: Faktiki məlumatları köçürən iş vahidləri. Bir bağlayıcı paralel işləmə üçün bir neçə tapşırığa sahib ola bilər.

Kafka Connect istifadə etmənin üstünlükləri:

  • İnteqrasiyanı sadələşdirmək: Çox sayda boilerplate kod yazmağa ehtiyac yoxdur.
  • Etibarlılıq: Uğursuzluğa davamlılıq, miqyaslandırma və məlumatların çatdırılması zəmanətləri dəstəklənir (ən az bir dəfə və ya tam olaraq bir dəfə, bağlayıcıdan asılıdır).
  • Genişləndirilə bilənlik: Öz bağlayıcılarınızı xüsusi ehtiyaclar üçün asanlıqla inkişaf etdirmək mümkündür.
  • İdarəetmə: Bağlayıcılar REST API vasitəsilə idarə oluna bilər.

İstifadə nümunəsi (hipotetik, nümayiş üçün):

PostgreSQL verilənlər bazasından Kafka mövzusuna məlumat ötürməyimiz lazım olduğunu fərz edək. PostgreSQL üçün Mənbə Bağlayıcısından istifadə edə bilərik.

# REST API vasitəsilə bağlayıcı yaratmaq üçün nümunə əmri
# Bu sadələşdirilmiş nümunədir, real parametrlər fərqli ola bilər
curl -X POST -H "Content-Type: application/json" --data '
{
  "name": "postgres-source-connector",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
    "tasks.max": "1",
    "connection.url": "jdbc:postgresql://<db_host>:<db_port>/<db_name>",
    "connection.user": "<db_user>",
    "connection.password": "<db_password>",
    "topic.prefix": "postgres-data-",
    "mode": "incrementing",
    "incrementing.column.name": "id",
    "table.whitelist": "public.users"
  }
}' http://<connect_worker_host>:<connect_worker_port>/connectors