Sau vài lần thử, tôi phát hiện ra rằng đó là sự cố với Trình cân bằng tải của Azure.
Sau 60 giây không hoạt động, nó sẽ ngắt kết nối bất kỳ kết nối TCP nào đang chờ xử lý.
Sau khi đào sâu hơn, tôi đã tìm thấy bài đăng này trong Câu hỏi thường gặp về chẩn đoán MongoDB và tôi đã đặt tcp keepalive thành 120s:
sudo sysctl -w net.ipv4.tcp_keepalive_time=<value>
và tôi cũng đã đặt socketKeepAlive của MongoClient thành true:
MongoClientOptions.Builder options = MongoClientOptions.builder();
options.socketKeepAlive(true);
mongoClient = new MongoClient(mongoAddress, options.build());
Sau những bản sửa lỗi này, sự cố dường như đã biến mất!