Avatar
0
Huu Tuyen Nguyen Beginner
Exception khi đồng bộ dữ liệu từ Kafka
  1. Cho e hỏi khi đồng bộ dữ liệu từ <code>kafka</code> với vai trò là consumer cần bắt nhưng exception nào?
  2. Và ở dòng code này: <code>@Payload(required = false) ConsumerRecords<String, String> records</code> thì cái <code>annotation payload required false</code> có ý nghĩa là gì. Thanks.
  • Answer
Remain: 5
1 Answer
Avatar
monkey Enlightened
monkey Enlightened
  1. Anh vẫn thường bắt Exception hoặc Throwable kiểu này:
     try {
        log.debug("start proccess record: {}", record);
        processRecord(record);
        log.debug("finish proccess record: {}", record);
    } catch (Exception e) {
        log.debug("proccess record: {} failed", record, e);
        if (e instance Exception khi xử lý logic) {
            // xử lý exception
        } else {
            // nếu không biết exception này là gì, nó sẽ là exception nghiêm trọng
            notifyToSlack(e); // thông báo vào kênh chat để dev xem ngay
        }
    }
    
  1. Theo như <a href="https://github.com/spring-projects/spring-framework/blob/main/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/Payload.java" target="_blank" rel="nofollow ugc">source code @Payload này</a> thì false có nghĩa không yêu cầu message gửi đến phải có payload (có nội dung). Có nghĩa là em có thể gửi một message rỗng không có nội dung gì và consumer vẫn sẽ chấp nhận nó. Tuy nhiên anh thấy em dùng kiểu <code>@Payload(required = false) ConsumerRecords</code> có vẻ không đúng lắm nhỉ? Thường thì sẽ khai báo 1 đối tượng Java làm payload em ạ.
  • 0
  • Reply