là cơ chế của Kafka:

  1. Offset: Kafka lưu vị trí đọc cuối (offset) của mỗi consumer group
  2. Persistence: Messages được lưu vào disk theo retention policy
  3. Consumer Group: Khi service up lại, nó sẽ đọc từ offset cuối đã lưu

=> Nhờ vậy không mất message khi service down, service sẽ đọc tiếp từ điểm dừng khi up lại.

image.png

Dữ liệu được lưu trong Zookeeper

/
├── brokers
│   ├── ids                    # Danh sách các broker đang hoạt động
│   └── topics                 # Metadata của topics
├── controller                 # Thông tin về controller hiện tại
├── consumers
│   └── [group_ids]           # Consumer group metadata
└── config
    └── topics                # Cấu hình của topics
Client -> API -> Producer Controller -> Producer Service -> Kafka Broker -> Consumer Service

Giải thích cách hoạt động:

  1. Khi ứng dụng khởi động:
  2. Khi gửi request POST:
  3. Cấu trúc message:

Lưu ý:



Có thể mở rộng demo này bằng cách: