Nano Hash - криптовалюты, майнинг, программирование

Как создать кластер kafka и темы в docker-compose.yml

Я новичок в докере. Я бы хотел контейнеризовать kafka и добавить к нему кластер, скажем, MyCluster, а затем добавить в кластер 4 темы, такие как theme_a, topic_b, theme_c и theme_d, сразу после запуска сервера kafka. Может кто-нибудь объяснить мне, как это сделать? Я попробовал следующий файл docker-compose.yml, и я могу запустить контейнерный сервер kafka и менеджер kafka, но я не могу программно создавать кластер/темы. Пожалуйста помоги!

version: "2"

services:
  kafkaserver:
    image: "spotify/kafka:latest"
    container_name: kafka
    hostname: kafkaserver
    networks:
      - kafkanet
    ports:
      - 2181:2181
      - 9092:9092
    environment:
      ADVERTISED_HOST: kafkaserver
      ADVERTISED_PORT: 9092
    command:
      /opt/kafka_2.11-0.10.1.0/bin/kafka-topics.sh --create --zookeeper kafkaserver:2181 --replication-factor 1 --partitions 1 --topic topic_a
      /opt/kafka_2.11-0.10.1.0/bin/kafka-topics.sh --create --zookeeper kafkaserver:2181 --replication-factor 1 --partitions 1 --topic topic_b
      /opt/kafka_2.11-0.10.1.0/bin/kafka-topics.sh --create --zookeeper kafkaserver:2181 --replication-factor 1 --partitions 1 --topic topic_c
      /opt/kafka_2.11-0.10.1.0/bin/kafka-topics.sh --create --zookeeper kafkaserver:2181 --replication-factor 1 --partitions 1 --topic topic_d

  kafka_manager:
    image: "mzagar/kafka-manager-docker:1.3.3.4"
    container_name: kafkamanager
    networks:
      - kafkanet
    ports:
      - 9000:9000
    links:
      - kafkaserver
    environment:
      ZK_HOSTS: "kafkaserver:2181"

networks:
  kafkanet:
    driver: bridge

  • Этот образ Spotify не поддерживался годами. Наверное, не хочу его использовать 23.10.2020

Ответы:


1

Я использую эту конфигурацию в моем файле docker-compose. Весь файл можно найти здесь https://github.com/felipegutierrez/explore-flink/blob/master/operations-playground/docker-compose.yaml

  zookeeper:
    image: wurstmeister/zookeeper:3.4.6
    restart: always
  kafka:
    image: wurstmeister/kafka:2.12-2.2.1
    environment:
      KAFKA_ADVERTISED_LISTENERS: INSIDE://:9092,OUTSIDE://:9094
      KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9094
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
      KAFKA_CREATE_TOPICS: "input:2:1, output:2:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    ports:
      - 9094:9094
    restart: always
22.10.2020
  • Привет Фелипе, большое спасибо за ваш ответ. Это сработало как шарм после того, как я изменил свой docker-compose.yml, чтобы использовать KAFKA_CREATE_TOPICS: тема_а:1:1, тема_b:1:1, тема_с:1:1, тема_d:1:1. 23.10.2020
  • Приятно ;) Я рад, что это сработало. Имейте в виду, что очень сложно заставить Kafka работать из коробки в Docker или Kubernetes. Вот почему есть куча других проектов, которые реализуют это для нас. Например, Strimzi, Confluent, wurstmeister и т. д. Используйте их. И, пожалуйста, рассмотрите возможность проверки моего ответа как принятого :) 23.10.2020
  • Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..