FresherKỹ thuậtThiết kế API
Webhook là gì và nó khác polling ở điểm nào?
Thử trả lời trước
Đáp án mẫu
Webhook là một HTTP callback: khi có sự kiện, bên cung cấp gửi POST tới URL bạn đã đăng ký. Với polling, bạn lặp đi lặp lại việc hỏi bên cung cấp "có gì mới không?" theo một bộ đếm thời gian.
Polling
- Đơn giản, và chạy được sau firewall vì bạn chỉ gọi ra ngoài.
- Lãng phí: phần lớn request không trả gì, và cập nhật chỉ đến nhanh bằng khoảng thời gian poll của bạn.
- Nhiều client poll dày có thể làm quá tải bên cung cấp.
Webhook
- Gần như realtime và hiệu quả, vì chỉ có traffic khi có event.
- Bạn cần một endpoint HTTPS công khai, phải verify chữ ký, và phải xử lý trùng lặp cùng retry, vì việc giao thường là at-least-once.
- Nếu server của bạn sập, bạn có thể lỡ event.
Một tích hợp đáng tin cậy kết hợp cả hai: dùng webhook cho tốc độ, và giữ job polling hoặc đối soát (hoặc events API) làm lưới an toàn cho các khoảng hở.
payment succeeds -> provider POST https://you.example.com/webhooks
you reply 200 quickly, then process the event
Chọn webhook cho luồng hướng sự kiện, và polling khi bạn không thể mở endpoint hoặc event hiếm khi xảy ra.
Ý chính
- Webhook là bên cung cấp gọi URL của bạn khi có event
- Polling hỏi lặp lại và lãng phí request lẫn thời gian
- Webhook cần kiểm tra chữ ký, dedupe và một endpoint công khai
- Kết hợp webhook với polling đối soát để đáng tin cậy
Câu hỏi nối tiếp thường gặp
- Làm sao xác minh webhook thật sự đến từ bên cung cấp?
- Chuyện gì xảy ra nếu endpoint của bạn trả lỗi?
Lỗi thường gặp
- Xử lý chậm trước khi phản hồi webhook
- Chỉ dựa vào webhook mà không có cách bắt kịp các event đã lỡ