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

Có gì mới trong PgBouncer 1.6

PgBouncer là một trình gộp kết nối nhẹ cho PostgreSQL.

PgBouncer 1.6 đã được công bố vào ngày 1 tháng 8 năm 2015. Trong bài đăng trên blog này, chúng ta sẽ nói về những cải tiến mới chính trong PgBouncer.

Các tính năng mới chính của PgBouncer

Tải hàm băm mật khẩu người dùng từ cơ sở dữ liệu postgres

PgBouncer hiện cho phép tải mật khẩu của người dùng từ cơ sở dữ liệu với hai tham số cấu hình là auth_user auth_query .

  • auth_user
    Nếu auth_user được đặt, bất kỳ người dùng nào không được chỉ định trong auth_file sẽ được truy vấn từ pg_shadow trong cơ sở dữ liệu bằng auth_user. Mật khẩu của auth_user sẽ được lấy từ auth_file. Tham số này cũng có thể được đặt cho mỗi cơ sở dữ liệu.

  • auth_query
    Tham số này cho phép chúng tôi viết truy vấn SQL để tải mật khẩu của người dùng từ cơ sở dữ liệu. Nó chạy dưới auth_user. Hãy xem truy vấn mặc định bên dưới:

    SELECT usename, passwd FROM pg_shadow WHERE usename=$1

Chế độ tổng hợp có thể được định cấu hình cho cả mỗi cơ sở dữ liệu và mỗi người dùng

Với tính năng này, không phụ thuộc vào chế độ gộp chính, các máy khách giờ đây có thể kết nối với các cơ sở dữ liệu khác nhau bằng một trong 3 chế độ gộp được mô tả bên dưới. Điều này cũng có thể áp dụng cho người dùng. Ví dụ:nếu chế độ gộp là gộp phiên, một người dùng cụ thể có thể được định cấu hình để sử dụng gộp giao dịch. Điều này mang lại cho chúng tôi sự linh hoạt ở cấp cơ sở dữ liệu và cấp người dùng để áp dụng các tùy chọn tổng hợp thích hợp hơn.

PgBouncer cung cấp 3 chế độ gộp kết nối:

  • Tổng hợp phiên
    Trong suốt thời gian tồn tại của kết nối máy khách, một kết nối máy chủ hiện có sẽ được gán cho máy khách và sau khi máy khách ngắt kết nối, kết nối máy chủ được chỉ định sẽ được đưa trở lại nhóm kết nối.
  • Tổng hợp giao dịch
    Trong chế độ này, kết nối máy chủ không được chỉ định cho một máy khách được kết nối ngay lập tức, mà chỉ trong một giao dịch. Ngay sau khi giao dịch kết thúc, kết nối sẽ được đưa trở lại nhóm.
  • Tổng hợp câu lệnh
    Điều này tương tự như gộp giao dịch, nhưng tích cực hơn. Một chương trình phụ trợ được chỉ định bất cứ khi nào có bất kỳ truy vấn câu lệnh đơn nào được đưa ra. Khi câu lệnh kết thúc, kết nối sẽ được đưa trở lại vào nhóm.

Giới hạn kết nối cho mỗi cơ sở dữ liệu và mỗi người dùng:max_db_connections và max_user_connections

Với tính năng này, giờ đây chúng tôi cũng có thể kiểm soát giới hạn kết nối trên mỗi cấp độ cơ sở dữ liệu / người dùng với hai tham số mới, đó là max_db_connections max_user_connections .

  • max_db_connections
    Tham số này không cho phép nhiều hơn các kết nối được chỉ định trên mỗi cơ sở dữ liệu (bất kể nhóm - tức là người dùng).
    Giá trị mặc định của tham số này là không giới hạn.
  • max_user_connections
    Tham số này không cho phép nhiều hơn số lượng kết nối được chỉ định cho mỗi người dùng (bất kể nhóm - tức là người dùng).

Thêm lệnh BẬT / BẬT để ngăn kết nối mới

Với tính năng này, PgBouncer có BẬT / TẮT db; lệnh để ngăn chặn các kết nối mới.

  • TẮT db;
    Lệnh này từ chối tất cả các kết nối máy khách mới trên cơ sở dữ liệu đã cho.
  • BẬT db;
    Lệnh này cho phép các kết nối máy khách mới sau lần TẮT BỎ trước đó lệnh.

Phần phụ trợ DNS ưa thích mới:c-ares

c-ares là phần mềm phụ trợ DNS duy nhất hỗ trợ tất cả các tính năng thú vị:/ etc / hosts với tính năng làm mới, tra cứu SOA, phản hồi lớn (thông qua TCP / EDNS + UDP), IPv6. Nó là chương trình phụ trợ được ưa thích hiện nay và có thể sẽ là duy nhất phụ trợ trong tương lai.

Tệp cấu hình có lệnh ‘% include FILENAME’ để cho phép chia cấu hình thành nhiều tệp

Với tính năng này, PgBouncer có hỗ trợ bao gồm các tệp cấu hình trong các tệp cấu hình khác.

Nói cách khác, tệp cấu hình PgBouncer có thể chứa các chỉ thị bao gồm, chỉ thị này chỉ định tệp cấu hình khác để đọc và xử lý. Điều này cho phép chia nhỏ một tệp cấu hình lớn thành các tệp nhỏ hơn và dễ quản lý hơn. Các lệnh bao gồm trông giống như sau:

%include filename

Nếu tên tệp không phải là đường dẫn tuyệt đối, nó được coi là liên quan đến thư mục làm việc hiện tại.

Có nhiều tính năng hơn được phát hành trong phiên bản này. Bạn có thể truy cập trang thay đổi PgBouncer hoặc kiểm tra danh sách bên dưới để biết các cải tiến khác:

  • Hiển thị remote_pid trong HIỂN THỊ KHÁCH HÀNG / MÁY CHỦ. Có sẵn cho các máy khách kết nối qua ổ cắm unix và cả máy chủ ổ cắm tcp và unix. Trong trường hợp của tcp-server, pid được lấy từ khóa hủy.
  • Thêm thông số cấu hình riêng biệt (dns_nxdomain_ttl) để kiểm soát bộ nhớ đệm dns phủ định.
  • Thêm địa chỉ IP máy chủ và cổng vào application_name. Điều này được kích hoạt bởi tham số cấu hình application_name_add_host được đặt mặc định là 'tắt'.

PgBouncer là gì?

PgBouncer là một tiện ích để quản lý các kết nối máy khách với cơ sở dữ liệu PostgreSQL. Tóm lại, nó duy trì một nhóm kết nối đến máy chủ PostgreSQL và sử dụng lại các kết nối hiện có đó. Mặc dù điều này có thể hữu ích để giảm chi phí kết nối máy khách, nhưng nó cũng cho phép giới hạn số lượng tối đa các kết nối mở đến máy chủ cơ sở dữ liệu. Nó cũng có thể được sử dụng để định hình lưu lượng như chuyển hướng kết nối đến một hoặc nhiều cơ sở dữ liệu đến các máy chủ cơ sở dữ liệu khác nhau. Ngoài những điều này, PgBouncer có thể được sử dụng để quản lý bảo mật trên người dùng và thậm chí trên cấp cơ sở dữ liệu.

Xem sơ đồ bên dưới mô tả kiến ​​trúc PgBouncer theo cách trực quan hơn.

Trong ví dụ cụ thể này, các ứng dụng khách được kết nối với các phiên bản PgBouncer riêng biệt mà thay vào đó, chúng sẽ được kết nối trực tiếp với máy chủ cơ sở dữ liệu PostgreSQL. Máy chủ cơ sở dữ liệu “DB Server 1” và “DB Server 2” có thể là các phiên bản PostgreSQL độc lập hoặc chúng có thể là một phần của cụm với các vai trò khác nhau (ví dụ:master / replica hoặc write-master / backup-master, v.v.).

Mỗi cá thể PgBouncer duy trì một nhóm kết nối với một số kết nối mở đến các máy chủ PostgreSQL. Như có thể thấy từ ví dụ, PgBouncers cho phép tạo các nhóm với các kết nối đến các cơ sở dữ liệu khác nhau và thậm chí cả các kết nối đến các máy chủ cơ sở dữ liệu khác nhau.

Để biết thêm thông tin

Bạn có thể truy cập trang web chính của PgBouncer:http://pgbouncer.github.io/

Họ có một trang Câu hỏi thường gặp hay:http://pgbouncer.github.io/faq.html

Bạn có thể xem qua kho Github của dự án:http://github.com/pgbouncer/pgbouncer


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể kết nối với Postgres DB do loại xác thực 10 không được hỗ trợ

  2. Cách hoạt động của to_char () trong PostgreSQL

  3. Triển khai PostgreSQL trên Docker Container

  4. Cách Round () hoạt động trong PostgreSQL

  5. Rails 3.1:Truy vấn Postgres cho các bản ghi trong một phạm vi thời gian