Chuỗi rỗng khi gửi RabbitMQ không phải 'không có exchange' — nó là cửa sau vòng qua mọi luật định tuyến
Default exchange là một exchange thật với binding ngầm không gỡ được — và là cửa sau vòng qua mọi luật định tuyến bạn dựng lên.
Default exchange là một exchange thật với binding ngầm không gỡ được — và là cửa sau vòng qua mọi luật định tuyến bạn dựng lên.
Hết giờ bạn bỏ về, người giao hàng làm xong vẫn đứng ở cửa ôm gói không ai nhận. Lan truyền huỷ qua nhiều tầng goroutine, mẫu kết quả có đệm, và ba chỗ context buộc phải xuất hiện.
Native Memory Tracking chỉ ra từng vùng bộ nhớ JVM, vì sao 500 luồng đặt chỗ hơn 1GB mà chỉ dùng thật 37MB, năm kiểu hết bộ nhớ với năm thông báo khác nhau, và vì sao container Java chết với mã 137 mà log sạch trơn.
Spring Security như một bộ lọc nước nhiều tầng: nước qua một dãy lõi cố định, mỗi lõi lọc đúng một thứ, sai thứ tự là hỏng cả dãy — và cái van cuối mặc định ĐÓNG. Mười lăm bộ lọc in ra thật, năm header tự bật, và cấu hình đúng thứ tự.
Ba tầng nạp lớp và cây uỷ quyền cha-trước, vì sao danh tính một lớp là cặp (tên, loader) chứ không phải cái tên, vì sao lần chạm thứ hai làm mất nguyên nhân gốc, và cách phân biệt ClassNotFoundException với NoClassDefFoundError.
ORM giấu việc truy cập CSDL quá giỏi, và mọi vấn đề tốn kém của tầng dữ liệu nằm đúng ở chỗ nó giấu. Bảng quyết định rút từ bảy phép đo thật, ba dòng cấu hình đáng đặt vào mọi dự án, và bốn thói quen đáng mang theo.