Hiện tại thì em mới tìm hiểu về Kafka gần đây nên kiến thức về Kafka và cả kiến thức đa luồng trong Java của em chỉ ở mức cơ bản thôi ạ.
Em có một câu hỏi muốn hỏi anh Dũng và mọi người là:
- Em dùng @KafkaListener để nhận message từ 1 topic.
- Sau khi nhận message từ Kafka thì sẽ xử lý 1 tác vụ rất lâu mà em muốn cải thiện hiệu năng em mới quyết định config đa luồng cho hàm listener này bằng thuộc tính concurrency = 2 (tương ứng với 2 luồng xử lí => mỗi luồng sẽ đc giao 1 partition , topic ví dụ của em có 2 partition )
Việc config như vậy sẽ cải thiện đc vấn đề hiệu năng một tí , vì có thể xử lý 2 message cùng 1 lúc không cần đợi nhau.
Câu hỏi chính của em là việc cấu hình đa luồng như vậy thì em thấy ưu điểm trước mắt là như trên thì bênh cạnh đó thì nó có nhược điểm gì không ạ ?( Vì kiến thức em còn hạn hẹp quá nên chưa thể nhìn ra )
Và ví dụ topic có nhiều partition hơn thì mình set concurrency bằng 1 số tương ứng thì có ảnh hưởng gì đến hiệu năng ko và có chuyện gì sẽ xảy ra khi mình set số lượng luồng quá lớn ạ ?
Cảm ơn mọi người !