Вы не можете использовать масштабирование, потому что идентификаторы брокера должны отличаться.
И вам не хватает этого верхнего раздела из нового сервиса
Вам нужны два порта, потому что один разрешает kafkaклиенты на хосте получают доступ к Kafka (9092), а другой позволяет сервисам Docker достигать Kafka (29092).
broker2:
image: confluentinc/cp-enterprise-kafka:5.3.1
hostname: broker2
container_name: broker2
depends_on:
- zookeeper
ports:
- "29192:29092" # technically, this one isn't needed to be mapped from the host
- "9192:9092"
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: broker:29092
CONFLUENT_METRICS_REPORTER_ZOOKEEPER_CONNECT: zookeeper:2181
CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1
Тем не менее, если вы действительно хотите запустить кластер брокеров, полезно использовать Confluent Helm Charts или проект Strimzi, однако запуск нескольких Kafka на одном компьютере не повышает производительность (ониобщий доступ к одному и тому же диску и занятие больше места через репликацию) или отказоустойчивость (это все на одной машине)