Введение в Confluent в передаче базы данных в реальном времени (1)

Kafka

1. задний план

В последнее время изучается схема передачи БД в реальном времени, целью которой является передача заданных данных одних таблиц в БД в другие БД в реальном времени.

Это отличается от обычной концепции резервного копирования базы данных.Резервное копирование базы данных заключается в копировании всех данных базы данных, и всегда существует определенная задержка. В этом исследовании выполняется передача в реальном времени после фильтрации данных, а время задержки должно контролироваться до миллисекундного уровня.

В процессе исследования я узнал, что платформа Confluent может очень хорошо реализовать эту функцию, поэтому я начал постепенно изучать ее использование и принципы работы.

Однако в процессе практики я обнаружил, что мало кто пользуется этой платформой в Китае, да и материалов в этой области очень мало, все они представляют собой введение в коротких предложениях, а практических руководств нет.

После поиска всевозможной информации я обнаружил, что единственный способ учиться — через официальный сайт, но официальный сайт — это все документы на английском языке, и людям, которые не очень хорошо владеют английским языком, учиться еще труднее.

Наконец, благодаря переводу документов официального веб-сайта и чтению некоторого исходного кода я, наконец, успешно построил набор систем передачи данных в реальном времени, и результаты работы относительно стабильны, что соответствует фактическим потребностям.

Здесь же я делюсь результатами этого исследования и практики для ознакомления тем, кому это нужно, чтобы потом не отклоняться в сторону.

2. Предварительное исследование Confluent

На официальном сайте Confluent есть много информации, и эта глава в основном посвящена некоторым необходимым понятиям или вещам, связанным с этим экспериментом.

2.1 Возможности совмещенной платформы

Говоря о Kafka, я полагаю, что многие знают, что это высокопроизводительная распределенная система обмена сообщениями типа «публикация-подписка», которая также используется многими отечественными компаниями, но вы, возможно, знаете относительно мало о Confluent.

Confluent — это стартап, основанный несколькими программистами, которые написали Kafka в то время после ухода из Linked In. Платформа Confluent — это основной продукт Confluent, и реализация его платформы в основном зависит от Kafka.

Ниже приведены два перехваченных официальных текстовых вступления:

The Confluent Platform is a streaming platform that enables you to organize and manage data from many different sources with one reliable, high performance system. docs.confluent.IO/current/individual…

Confluent Platform makes it easy build real-time data pipelines and streaming applications. By integrating data from multiple sources and locations into a single, central Event Streaming Platform for your company. docs.confluent.IO/current/para…

Два предыдущих абзаца переводятся как:

Confluent — это потоковая платформа для управления и организации разрозненных источников данных, интеграции данных из разрозненных источников и местоположений в центральную платформу потоковой передачи событий в режиме реального времени. А также подчеркивалось, что платформа очень надежная, высокопроизводительная, короче говоря, очень простая в использовании и очень мощная.

На следующей диаграмме графически показано, чего может достичь Confluent.

2.2 Состав Confluent Platform

В настоящее время Confluent предлагает две версии: версию для сообщества и коммерческую версию.Версия для сообщества постоянно бесплатна, а коммерческая версия платная для предприятий.

Community Edition предоставляет базовые услуги, такие как соединители, REST Proxy, KSQL и Schema-Registry.

Коммерческая версия предоставляет предприятиям расширенные функции, такие как панель управления, балансировка нагрузки, межцентровое резервное копирование данных и защита безопасности.

2.3 Знакомство с функциями Community Edition

При сравнении функций двух версий обнаруживается, что версия сообщества уже может соответствовать нашим требованиям, поэтому версия сообщества используется для исследования в оставшейся части этой статьи.

Ссылка на скачивание:www.confluent.io/download/

Разархивируйте загруженный пакет выпуска сообщества, который содержит следующие папки:

Описание функций каждого каталога файлов выглядит следующим образом:

При просмотре каталогов bin и etc обнаруживается, что каждый компонент независим друг от друга, и имеет свой сценарий запуска/остановки и соответствующий файл конфигурации, который позволяет гибко настраивать каждую службу.

2.4 слитная команда

Confluent предоставляет множество команд для управления и мониторинга confluent платформы.Список и описание команд приведены ниже:

Представленные выше команды относительно просты, я полагаю, что каждый может их понять, и я не буду вводить их здесь одну за другой.

Здесь мы в основном упоминаем, что мы, скорее всего, будем использовать две команды, слияние start и слияние stop, Эти две команды используются для запуска и остановки соответствующей службы и всех зависимых элементов службы соответственно.

Если команда запуска не имеет параметров, соответствующие службы будут запущены по порядку, а команда остановки остановит службы в обратном порядке.

Выполните команду запуска:

confluent start

Результат выглядит следующим образом, [UP] указывает на то, что служба успешно запущена:

Startingzookeeper
zookeeper is[UP]
Startingkafka
kafka is[UP]
Startingschema-registry
schema-registry is[UP]
Startingkafka-rest
kafka-rest is[UP]
Startingconnect
connect is[UP]
Startingksql-server
ksql-server is[UP]

Выполните команду остановки:

confluent stop 

Результат выглядит следующим образом: [DOWN] указывает, что служба была успешно остановлена:

Stoppingksql-server
ksql-server is [DOWN]
Stopping connect
connect is [DOWN]
Stopping kafka-rest
kafka-rest is [DOWN]
Stopping schema-registry
schema-registry is [DOWN]
Stopping kafka
kafka is [DOWN]
Stopping zookeeper
zookeeper is [DOWN]

Из приведенной выше команды видно, что запуск и отключение служб имеют определенный порядок и не могут быть отменены по желанию.

3. Введение сервисной функции

3.1 Zookeeper

Zookeeper — это служба координации распределенных приложений с открытым исходным кодом, реализация Chubby от Google с открытым исходным кодом и важный компонент Hadoop, Hbase и Storm.

К основным функциям Zookeeper относятся: сохранение информации о конфигурации, присвоение имен, обеспечение распределенной синхронизации, управление группами и другие централизованные службы.

Kafka uses ZooKeeper to store persistent cluster metadata and is a critical component of the Confluent Platform deployment. docs.confluent.IO/current/zoo…

Kafka использует ZooKeeper для постоянного хранения метаданных кластера и является ключевым компонентом развертывания платформы Confluent.

Если ZooKeeper потеряет данные Kafka, связь сопоставления реплик кластера и информация о конфигурации, такая как темы, будут потеряны, и в конечном итоге кластер Kafka перестанет работать должным образом, что приведет к потере данных.

Для получения дополнительной информации о Zookeeper вы можете проверить официальную ссылку:zookeeper.apache.org/

3.2 Kafka

Kafka — это платформа распределенной потоковой обработки, первоначально разработанная Linkedin.Это распределенная система обмена сообщениями, основанная на координации зоопарка и поддерживающая разделение и множественные реплики.

Самая большая особенность Kafka заключается в том, что она может обрабатывать большие объемы данных в режиме реального времени для удовлетворения различных сценариев спроса: таких как системы пакетной обработки на основе Hadoop, системы реального времени с малой задержкой, потоковые механизмы Storm/Spark, веб-журналы/журналы nginx. , журналы доступа, службы сообщений и т. д.

Kafka написана на языках Java и Scala, а Linkedin внесла свой вклад в Apache Foundation в 2010 году и стала ведущим проектом с открытым исходным кодом.

Apache Kafka® is a distributed streaming platform. Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system. Store streams of records in a fault-tolerant durable way. Process streams of records as they occur. kafka.apache.org/intro

Принцип работы Kafka — это высокопроизводительная распределенная система обмена сообщениями с публикацией и подпиской. Промежуточное программное обеспечение очереди сообщений в основном отвечает за передачу сообщений. Confluent полагается на Kafka для передачи сообщений.

3.3 Kafka-rest

The Confluent REST Proxy provides a RESTful interface to a Kafka cluster, making it easy to produce and consume messages, view the state of thecluster, and perform administrative actions without using the native Kafka protocol or clients. docs.confluent.IO/current/coffee…

Компонент службы интерфейса Kafka RESTful, предоставляемый Confluent.

Легко генерировать и использовать сообщения, просматривать состояние кластера и выполнять административные операции через интерфейс Restful, а не через собственный протокол или клиент Kafka.

3.4 Schema-Registry

Schema Registry provides a serving layer for your metadata. Itprovides a RESTful interface for storing and retrieving Avro schemas. It storesa versioned history of all schemas, provides multiple compatibility settingsand allows evolution of schemas according to the configured compatibilitysettings and expanded Avro support. docs.confluent.IO/current/generates…

Schema-Registry — это сервис для управления метаданными. Он также предоставляет интерфейс RESTful для хранения и извлечения схем. Он может сохранять все версии изменений формата данных и имеет обратную совместимость.

Schema-Registry также предоставляет подключаемый модуль сериализации в формате Avro для Kafka для передачи сообщений.

Confluent в основном использует Schema-Registry для управления и сериализации схемы данных.

3.5 Connect

Kafka Connect is a framework for connecting Kafka with external systems such as databases,key-value stores, search indexes, and file systems.Using Kafka Connect you canuse existing connector implementations for common data sources and sinks to move data into and out of Kafka. docs.confluent.IO/current/con…

Kafka Connect — это компонент Kafka с открытым исходным кодом, представляющий собой базовую структуру для подключения Kafka к внешним системам, таким как базы данных, системы хранения ключей и значений, поисковые системы и файловые системы.

Используя платформу Kafka Connect и существующие соединители, можно читать сообщения из исходных данных в Kafka, а затем читать сообщения из Kafka в пункт назначения.

Основываясь на Kafka connect, Confluent реализовал множество бесплатных коннекторов для распространенных систем, которые могут использовать все желающие. Список выглядит следующим образом:

  • Kafka Connect ActiveMQ Connector
  • Kafka FileStream Connectors
  • Kafka Connect HDFS
  • Kafka Connect JDBC Connector
  • Confluent Kafka Replicator
  • Kafka Connect S3
  • Kafka Connect Elasticsearch Connector
  • Kafka Connect IBM MQ Connector
  • Kafka Connect JMS Connector

Эти коннекторы можно использовать бесплатно, и Confluent предоставляет исходный код на GitHub, который можно модифицировать в соответствии с потребностями своего бизнеса.

3.6 ksql-server

KSQL is thestreaming SQL engine for Apache Kafka that you can use to perform streamprocessing tasks using SQL statements. docs.confluent.IO/current/str…

KSQL — это механизм потоковой обработки SQL, который выполняет задачи потоковой обработки в Apache Kafka с помощью операторов SQL.

Confluent использует KSQL для предоставления сервисов запросов к данным Kafka.

4. Резюме

Вышеизложенное в основном знакомит с происхождением Confluent, функциями, составом и сопутствующими услугами платформы Confluent. Я считаю, что у всех есть предварительное представление и понимание Confluent через эту статью, которая также закладывает основу для последующей практики.

Поскольку Confluent Platform имеет огромные функции и множество сервисов, поначалу ее использование может сбивать с толку. К счастью, различные документы на официальном сайте более подробны, и есть соответствующие блоги, которыми каждый может обменяться.

Наконец, ждите следующей практической главы, в которой шаг за шагом будет рассказано, как построить высокопроизводительную систему передачи данных.

Хотите узнать больше, обратите внимание на публичный номер: семь приготовленных пицц

在这里插入图片描述