1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-KSQL

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
klip-62-ksqldb-ruby-client.md 5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 07:33 e6dfb69

KLIP 62 — ksqlDB Ruby Client

Автор: Lapo Elisacci (@LapoElisacci) | Целевой выпуск: TBD | Статус: обсуждается | Обсуждение: TBD

Краткое содержание: разработка HTTP2-клиента на Ruby для запроса REST API ksqlDB.

Мотивация и предпосылки

Предоставление разработчикам Ruby / Ruby on Rails возможности начать работу с ksqlDB.

Что входит в проект

  • Лёгкий, но полный клиент на Ruby, конфигурация хоста и порта kslqDB будет настраиваемой.

  • Клиент будет выполнять большинство операций, которые выполняет Java-клиент:

    • получать результаты запросов по одной строке за раз;
    • получать результаты запроса одной партией;
    • завершать push-запрос;
    • вставлять новую строку в поток;
    • создавать и управлять новыми потоками, таблицами и постоянными запросами;
    • перечислять потоки, таблицы, темы и запросы;
    • описывать конкретные потоки и таблицы;
    • получать метаданные о кластере ksqlDB;
    • управлять, перечислять и описывать коннекторы.
  • Документация и примеры.

Что не входит в проект

  • Всё, что касается самого развития ksqlDB.
  • Определение ORM для динамического построения SQL-операторов (это будет сделано в рамках будущего проекта).

Ценность/результат

Возможность легко включить ksqlDB в любые приложения Ruby / Ruby on Rails.

Публичные API

  • Класс предоставит метод config для настройки соединения между клиентом и ksqlDB следующим образом:
  Ksql.configure do |config|
    config.host = 'http://localhost:8088'
  end

Методы

  • ksql — позволяет отправлять запросы к конечной точке /ksql.
  • close_query — позволяет закрывать постоянные запросы, запрашивая конечную точку /close-query.
  • stream — позволяет выполнять push-запросы, обрабатывая сообщения по одному в потоковом режиме.
  • query — позволяет выполнять pull-запросы.
  • cluster_status — позволяет анализировать состояние кластера ksqlDB.
  • health_check — позволяет проверить работоспособность сервера ksqlDB.
  • info — позволяет получить информацию о состоянии сервера ksqlDB.
  • terminate — позволяет завершить работу кластера и очистить ресурсы или удалить темы Kafka.

Дизайн

  • Логика запроса всех доступных конечных точек REST API ksqlDB будет реализована в классе Ruby.
  • Ответы на запросы будут заключены в объекты для облегчения манипулирования возвращаемыми данными.

План тестирования

Как модульные, так и интеграционные тесты. Операторы CREATE, DESCRIBE, DROP, INSERT, SELECT (как push, так и pull), SHOW и TERMINATE будут должным образом протестированы, чтобы гарантировать, что клиент всегда ведёт себя ожидаемым образом.

Будет использоваться стандартный набор тестов Ruby RSpec. Тестирование запросов будет выполняться против ksqlDB >= 0.22.

Этапы и сроки выполнения

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

Любая значимая будущая ошибка будет устранена в течение недели.

Совместимость

Клиент будет совместим с Ruby >= 2.6.

Последствия для безопасности

Клиент будет поддерживать все протоколы, поддерживаемые REST API ksqlDB.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-KSQL.git
git@api.gitlife.ru:oschina-mirror/mirrors-KSQL.git
oschina-mirror
mirrors-KSQL
mirrors-KSQL
master