Làm việc với Apache Kafka sử dụng Spring Boot

Trong những bài viết trước Quản lý Apache Kafka sử dụng class KafkaAdmin của Spring for Apache Kafka và Gửi message tới Apache Kafka sử dụng class KafkaTemplate của Spring for Apache Kafka, mình đã hướng dẫn các bạn cách làm việc với Apache Kafka sử dụng module Spring for Apache Kafka của Spring. Spring Boot cũng đã hỗ trợ Apache Kafka bằng cách auto configuration các thông tin cần thiết để chúng ta dễ dàng làm việc với Apache Kafka sử dụng Spring. Cụ thể như thế nào? Chúng ta hãy cùng nhau tìm hiểu trong bài viết này các bạn nhé!

Đầu tiên, mình sẽ tạo mới một Spring Boot project với Spring for Apache Kafka:

để làm ví dụ.

Quản lý các topics

Như các bạn đã biết, chúng ta sẽ sử dụng class KafkaAdmin để quản lý các topic trong Apache Kafka. Với cơ chế auto-configuration của Spring Boot, các bạn chỉ cần cấu hình thông tin của Apache Kafka server sử dụng property sau:

là có thể ingest bean của class KafkaAdmin để sử dụng rồi.

Ví dụ, nếu mình cấu hình bean của class NewTopic:

thì khi chạy ứng dụng lên, các bạn cũng sẽ thấy một topic mới được tạo.

Lấy thông tin của topic sử dụng class KafkaAdmin như sau:

các bạn cũng thấy kết quả tương tự như bài viết trước:

Gửi message tới topics

Với class KafkaTemplate, các bạn cũng chỉ cần cấu hình thêm một số property sau là có thể ingest bean của class KafkaTemplate để sử dụng rồi:

Ví dụ như sau:

Kết quả:

Nhận message

Spring Boot hỗ trợ một số properties sau cho phần consumer, giúp chúng ta dễ dàng consume các message của Apache Kafka server trong các ứng dụng Spring Boot. Cụ thể như sau:

Chỉ cần khai báo những properties này, Spring Boot sẽ khởi tạo bean cho class implement interface KafkaListenerContainerFactory và bean cho class ConsumerFactory.

Các bạn giờ chỉ cần định nghĩa class chứa phương thức được annotate với annotation @KafkaListener mà thôi. Ví dụ của mình như sau:

Kết quả nếu mình chạy ứng dụng, gửi một message “Hello World!” tới Apache Kafka server sử dụng ví dụ trong bài viết Gửi message tới Apache Kafka sử dụng class KafkaTemplate của Spring for Apache Kafka, như sau:

Add Comment