Trong bài trước (Viết chương trình cơ bản), chúng ta đã thực hành viết một chương trình giả lập Kafka Producer và Consumer (SimpleProducer và SimpleConsumer). Chương trình SimpleProducer được dùng để gửi dữ liệu (số tự nhiên từ 0-9) tới topic ‘test’ của Kafka và chương trình SimpleConsumer đọc các dữ liệu từ topic ‘test’. Trong bài tutorial này, chúng ta sẽ thực hành viết một chương trình sử dụng Kafka để truyền dữ liệu từ Twiter bằng cách kết hợp code của SimpleProducer và code trong bài Phân tích bài đăng trên Twitter.

Trước hết ta tạo một Kafka Topic với tên TwitterData như trong hướng dẫn ở bài Cài đặt Apache Kafka với dòng lệnh sau:

Tiếp theo, ta tạo một Java class có tên KafkaTwitter và thêm dependency của twitter4j như hướng dẫn trong bài Phân tích bài đăng trên Twitter. Ta cũng sẽ sử dụng lại hàm getTweets(String topic) để thu thập thông tin bài đăng về một chủ đề nhất định.

Trong hàm main của KafkaTwitter class, ta tạo một Producer với các thuộc tính tương tự ở bài SimpleProducer và thiết lập Kafka Topic là TwitterData:

Tiếp theo ta sử dụng hàm getTweets(String topic) để thu thập các bài đăng liên quan đến “Natural Language Processing” như sau:

Cuối cùng, ta truyền dữ liệu của các bài đăng trên Twitter tới TwitterData topic như sau:

Nhấn Ctrl+Shift+F10 để chạy chương trình trên IntelliJ. Sau khi chương trình chạy xong, sẽ hiện ra đoạn tin nhắn: “Message sent successfully” báo rằng chúng ta đã chạy thành công chương trình.

Để kiểm tra dữ liệu nhận được, ta mở một cửa sổ terminal và chạy Consumer với topic là TwitterData như hướng dẫn trong bài Viết chương trình cơ bản, ta được kết quả:

Như vậy ta đã hoàn thành việc viết một chương trình sử dụng Kafka để truyền dữ liệu là các bài đăng liên quan đến “Natural Language Processing” trên Twitter. Các bạn có thể tham khảo full code của chương trình dưới đây.

Tháng Mười Hai 5, 2018
ITechSeeker