Khi một server chạy tách riêng khỏi server game như chat, tổ đội, nhà đấu giá gặp sự cố, chỉ riêng tính năng đó ngừng hoạt động.
Vì sao Server dành riêng cho một tính năng bị chậm hoặc chết → Dẫn đến Chỉ yêu cầu của tính năng đó không có phản hồi → Trên màn hình Không chat được, mời tổ đội không phản hồi, sàn giao dịch loading mãi (chiến đấu vẫn bình thường)
Phụ trách chính Phát triển server (Đội phát triển game) · Phối hợp Hạ tầng server (Đội hạ tầng)
Việc cần làm (Đội phát triển game)
Thiết kế để game vẫn tiếp tục khi tính năng lỗi, hiển thị trạng thái từng tính năng, không dồn nhiều tính năng vào một server trung tâm.
Việc cần làm (Đội hạ tầng)
Health check và cảnh báo cho từng server phụ trợ, dự phòng (redundancy) và tự khởi động lại.
Trên đồ thị
Rớt kết nối hàng loạt · Tỷ lệ yêu cầu thành công theo tính năng, số kết nối và health check của server phụ trợ
Chỗ cần xem
Health check, trạng thái tiến trình và số kết nối của từng server phụ trợ như chat, tổ đội, nhà đấu giá; tỷ lệ thành công và thời gian phản hồi theo tính năng. Nếu nằm sau bộ cân bằng tải: UnHealthyHostCount của target group
Đúng nếu
chỉ server phụ trách tính năng bị báo lỗi có health check thất bại hoặc số kết nối tụt mạnh, còn tick và chiến đấu trên server game vẫn bình thường
Loại trừ nếu
nhiều tính năng cùng đứng một lúc → xem server trung tâm chuyển tiếp chung các tính năng đó hoặc sự cố dây chuyền
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)
Tìm hiểu thêm
Nếu cấu trúc có một server trung tâm (server world hoặc server manager) chuyển tiếp mọi thứ như tổ đội, guild, tin nhắn riêng, di chuyển giữa các server, thì chỉ cần server đó chậm là nhiều tính năng cùng đứng lại một lúc.
Nguồn
Bulkhead PatternMicrosoft Azure Cô lập các thành phần vào pool riêng thì khi một thành phần hỏng, phần còn lại vẫn chạy và sự cố không lan ra