PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Npgsql với Pgbouncer trên Kubernetes - tổng hợp và lưu giữ

Nhìn chung, bạn đang đi đúng hướng và phân tích của bạn có vẻ chính xác. Một số nhận xét:

Tùy chọn 2 (loại bỏ vật lưu trữ) sẽ giúp loại bỏ các kết nối không hoạt động trong nhóm Npgsql đã bị hỏng. Như bạn đã viết, ứng dụng của bạn vẫn sẽ gặp một số lỗi (vì một số kết nối không hoạt động kém có thể không được gỡ bỏ kịp thời). Không có lý do cụ thể nào để nghĩ rằng điều này sẽ gây ra thêm vấn đề - điều này sẽ khá an toàn để bật.

Tùy chọn 3 thực sự có vấn đề đối với hiệu suất, vì kết nối TCP tới pgbouncer sẽ phải được thiết lập mỗi khi cần kết nối cơ sở dữ liệu. Nó cũng sẽ không cung cấp cơ chế chống lỗi 100%, vì pgbouncer vẫn có thể bị rớt ra khi đang sử dụng kết nối.

Vào cuối ngày, bạn đang hỏi về khả năng phục hồi khi đối mặt với sự cố mạng / máy chủ tùy ý, đây không phải là điều dễ dàng đạt được. Cách duy nhất đáng tin cậy 100% để giải quyết vấn đề này là trong ứng dụng của bạn, thông qua một lớp chuyên dụng sẽ thử lại các hoạt động khi một ngoại lệ tạm thời xảy ra. Bạn có thể muốn xem Polly và lưu ý rằng Npgsql sẽ giúp chúng ta một chút bằng cách tiết lộ một IsTransient ngoại lệ có thể được sử dụng như một kích hoạt để thử lại (Entity Framework Core cũng bao gồm một "chiến lược thử lại" tương tự). Nếu bạn đi theo con đường này, hãy lưu ý rằng các giao dịch đặc biệt khó xử lý chính xác.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để ngăn dữ liệu trùng lặp trên bản sao csv postgresql

  2. postgresql - đếm theo phạm vi giá trị

  3. GROUP BY trong mệnh đề UPDATE FROM

  4. Để bỏ qua các khóa trùng lặp trong quá trình 'sao chép từ' trong postgresql

  5. psycopg2 không thể tìm thấy bất kỳ bảng nào sau khi kết nối