Skip to content

Latest commit

 

History

History
58 lines (40 loc) · 1.61 KB

File metadata and controls

58 lines (40 loc) · 1.61 KB

Kafka Clustering

Cross-node broadcasting via Kafka. Messages broadcast on one node are delivered to clients on all nodes.

Maven Coordinates

<dependency>
    <groupId>org.atmosphere</groupId>
    <artifactId>atmosphere-kafka</artifactId>
    <version>4.0.13</version>
</dependency>

Quick Start

Configure the broadcaster class and Kafka connection:

org.atmosphere.cpr.broadcasterClass=org.atmosphere.kafka.KafkaBroadcaster
org.atmosphere.kafka.bootstrap.servers=localhost:9092

Spring Boot

atmosphere:
  broadcaster-class: org.atmosphere.kafka.KafkaBroadcaster
  init-params:
    org.atmosphere.kafka.bootstrap.servers: localhost:9092

Configuration

Property Default Description
org.atmosphere.kafka.bootstrap.servers localhost:9092 Kafka broker(s)
org.atmosphere.kafka.topic.prefix atmosphere. Topic name prefix
org.atmosphere.kafka.group.id auto-generated Consumer group ID

How It Works

KafkaBroadcaster extends DefaultBroadcaster and publishes every broadcast message to a Kafka topic. Each node runs a consumer that polls for messages and delivers them to local clients. A node ID Kafka header (atmosphere-node-id) prevents echo.

Topic names are derived from the broadcaster ID: <prefix><sanitized-broadcaster-id>.

The consumer loop runs on a virtual thread.

Key Classes

Class Purpose
KafkaBroadcaster Broadcaster that publishes/consumes via Kafka topics

See Also