'tôi gửi rồi mà consumer không nhận' — direct exchange khớp routing key đúng từng ký tự
Kiểu định tuyến đơn giản nhất của RabbitMQ: năm biến thể của cùng một khoá chỉ một cái tới đích, và phép đo cho thấy số binding không ảnh hưởng thông lượng.
Kiểu định tuyến đơn giản nhất của RabbitMQ: năm biến thể của cùng một khoá chỉ một cái tới đích, và phép đo cho thấy số binding không ảnh hưởng thông lượng.
sync như bộ công cụ của một trưởng đoàn: WaitGroup là điểm danh (đủ người mới đi), Once là cái cổng người đầu mở cho cả nhóm, Pool là giá đồ thuê phải lau sạch trước khi dùng lại. Ba công cụ, ba cái bẫy thật.
Một biến dùng chung như tấm bảng đếm treo tường mà cả nhóm cùng ghi: muốn cộng một thì đọc số cũ, cộng trong đầu, ghi lại — hai người làm cùng lúc là mất một. Mutex là cây phấn duy nhất, atomic là cái đếm cơ khí, và vì sao RWMutex không phải nâng cấp miễn phí.
Pool kết nối như một đội xe chung của công ty: ký mượn một chiếc, chạy việc, ký trả; hết xe thì bị từ chối chứ không xếp hàng vô hạn. Vì sao đội xe đông hơn không chạy việc nhanh hơn, bốn tham số HikariCP, và nguyên nhân thật của cạn pool.
Vì sao HashMap mất dữ liệu khi nhiều luồng ghi, synchronizedMap nguyên tử từng thao tác mà vẫn sai ở mẫu kiểm-tra-rồi-hành-động, computeIfAbsent khác containsKey-rồi-put chỗ nào, và bảng tỷ lệ ghi để biết khi nào CopyOnWrite sụp.
Ba phần của một thông điệp AMQP, bốn thuộc tính broker thật sự dùng, và phép đo lật ngược lời khuyên «persistent thì chậm».