Dear all,
Em thấy một số hệ thống giao tiếp với nhau theo kiểu định kỳ như thế này:
- Server A xuất data muốn gửi vào file và lưu file này tại path X.
- Server B muốn lấy data thì định kỳ cứ mỗi 1 giờ B vào X để lấy file.
Em có thắc mắc là:
- Tại sao phải làm như vậy? không được realtime nữa, tại sao không triển khai theo kiến trúc web service?
- Mỗi khi B vào A lấy file thì B có báo với A để A xóa không?
- Tại path X, A xóa rồi tạo file mới hai ghi tiếp vào file cũ?
- B có bị trùng data không?
Em từng thấy cách làm này ngoài thực tế là trường hợp bác sĩ gọi số thứ tự bệnh nhân, số thự tự thì chạy realtime ở service HIS (tên hệ thống quản lý bệnh viện). Bài toán đặt ra là làm sao để hiển thị số này trên màn hình led? Ông dev HIS đưa enpoint restful API cho ông dev màn led bảo:
– API nè call đi, socket nè ông listening đi!
Ông dev màn led bảo:
– Tôi không biết gì về web service cả, màn led này không tạo request htttp, ws được. Thôi thì ông tạo file STT.txt trong ổ C máy y tá đi, muốn gửi gì thì ghi vào file STT.txt theo syntax này nè, màn led tôi cắm dây vào máy này. Định kỳ 20s màn led của tôi sẽ vào file này cập nhật STT.
Đây là trường hợp giới hạn về công nghệ, nguồn lực nhưng em vẫn thấy các hệ thống lớn cỡ ngân hàng vẫn dùng cách này (có thể đây nguyên nhân dẫn đến giao dịch bị delay cả ngày vì chưa đến thời điểm server B crawl data từ server A chăng?)
Mong được giải đáp, em cảm ơn