Kiến trúc hệ thống 22/09/2026 6 phút

PgBouncer gộp kết nối: vì sao ngàn kết nối làm sập PostgreSQL, và cách cứu

Mỗi kết nối PostgreSQL là một process riêng tốn RAM, và max_connections có trần cứng — ngàn client làm cạn kết nối, database từ chối. PgBouncer đứng giữa, gộp nhiều client vào một pool nhỏ. Bài này dựng THẬT Postgres + PgBouncer: 30 client chỉ thành 5 backend, và đo chi phí thiết lập kết nối đắt gấp 50 lần giữ kết nối.

Spring 06/08/2026 7 phút

publishEvent không gửi vào hàng đợi — nó là lời gọi phương thức đồng bộ, và một listener ném là cả dây chuyền dừng

Sự kiện ứng dụng nghe như hô một thông báo rồi đi, nhưng thật ra là bạn đi từng bàn vỗ vai từng người, đứng chờ, và ai làm rơi thì bạn dừng cả errand. Chạy đồng bộ, @TransactionalEventListener, và khi nào cần hàng đợi thật.