參考 《postgresql修煉之道》之pgbouncer
配置檔案分為[databases] 和 [pgbouncer]兩部分,這個前面說過。現在我們來詳細講解一下裡面的配置。
在上面的部分我們已經看到了一部分的[databases]部分的引數配置,都是以鍵值對的形式出現的,例如dbname、host、port、user、password,這幾個引數都比較好理解。還有幾個額外的配置我們接著看一下:
(1) pool_size 用來配置連線池的大小。連線池的含義上面說過,如果沒有這個值則使用[pgbouncer]部分的default_pool_size的值。
(2)connect_query :後面跟乙個sql語句字串,用於探測這個連線是否正常,如果執行sql語句出錯,則換乙個連線。
(3)client_encoding:指定連線的客戶端使用的字符集編碼
(4)datestyle:指定日期型別
(5)timezone:指定時區。
[pgbouncer]部分的配置
這個部分的配置項比較多,主要分為下面幾類:
通用配置項
日誌配置項
控制介面訪問控制配置項
連線健康檢查和超時配置項
危險的超時配置項
底層網路配置項
通用配置
logfile 指定日誌檔案,預設值是/var/log/pgbouncer/pgbouncer.log
pidfile 指定pid檔案位置,預設值是/var/run/pgbouncer/pgbouncer.pid
listen_addr 監聽的位址,預設值是127.0.0.1,可以使用*號表示監聽所有ip位址。
listen_port 監聽的埠,預設值是6432
unix_socket_dir 指定unix socket檔案的目錄,預設為/tmp目錄
unix_socket_mode 指定unix socket檔案的許可權,預設值為0777
unix_socket_group 指定unix socket檔案的組,預設無
user 指定啟動pgbouncer的使用者名稱,windows系統不支援此設定
auth_type 認證的型別,預設是trust,其他值包括md5,crypt,plain,any,hba。用的較多的是md5
auth_file 認證檔案的位置,預設值是/etc/pgbouncer/userlist.txt
pool_mode 指定池的模式,預設是session模式,還可以是transaction和statement
max_client_conn 允許的最大連線數
default_pool_size 預設的池大小,預設值20
min_pool_size 最小的池大小,每個連線池至少會向後端資料庫保持多少個連線
reserve_pool_size 連線池的保留連線數
reserve_pool_timeout 保留連線的超時時間
server_round_robin 負載均衡的方式是否設定為「round robin」,預設為關閉,即後進先出
ignore_startup_parameters 預設情況pgbouncer只會跟蹤一些預設引數,並且能檢測這些引數的變化,保持這些引數和客戶端的一致。在這個配置後面跟的配置後被pgbouncer忽略,不會被檢查。
disable_pqexec 是否禁止簡單查詢協議,預設值為0。簡單查詢協議允許乙個請求傳送多個sql,容易導致sql注入攻擊。
日誌配置項:
syslog 是否開啟syslog,windows下開啟eventlog,預設值為0,表示不開啟。
syslog_ident 預設為pgbouncer
syslog_facility
log_connections 是否記錄連線成功的日誌,預設值為1,表示記錄
log_disconnections 是否記錄斷開連線的日誌,預設值為1,表示記錄
log_pooler_errors 連線池法網客戶端的錯誤是否記錄在日誌中,預設值為1,表示記錄
stats_period 把彙總的統計資訊寫入日誌的時間週期,預設是60s
控制介面訪問控制配置項:
admin_users 管理使用者名稱,預設值是postgres
stats_users 允許連線到控制介面,檢視連線池唯讀資訊的使用者列表。可以執行除「show fds」以外的其他「show」命令
server_reset_query
server_check_delay 空閒的連線多長時間進行一次健康檢測,判斷連線是否可用。如果設定為0,則立即檢測,預設值為30s
server_check_query,進行健康檢查的sql語句,如果為0,表示不檢測,預設值為「select 1;」
server_lifetime 連線的存活時間,連線超過這個時間就會被關閉,預設為3600,設定為0表示只使用一次。
server_idle_timeout 連線的idle時間,超過此時間,連線會被關閉。預設為600
server_connect_timeout 後端資料庫的login時間超過這個值就會被關閉。預設為15s
server_login_retry 傳教到後端資料庫的連線失敗後,等多長時間後重試,預設為15s
client_login_timeout 客戶端與pgbouncer建立連線後,如果無法在這段時間內完成登入,那麼連線會斷開,預設為60s
危險超時配置項
指的是為防止一些未知錯誤或者原因導致系統卡住的針對性配置。
query_timeout 允許超過該時間值的sql會被斷開,應該比sql實際的執行時間稍長,也需要比資料庫的statement_timeout引數值更大。為了應付一些未知的網路問題。預設為0.0,禁止使用
query_wait_timeout 請求在佇列中等待被執行的最長時間,如果超過該時間還沒有分配到連線,就會斷開。預設為0,禁止使用。
client_idle_timeout 客戶端連線空閒超過該時間,則斷開連線。預設值為0,禁止使用
idle_transaction_timeout 客戶端啟動事務後,超過這個時間沒有結束事務,則關閉這個客戶端連線。預設值為0,禁止使用
底層網路連線配置
pkt_buf 用於網路包的內部緩衝區大小,會影響發出的tcp包的大小即記憶體的使用,預設值為2048,一般保持預設值
max_packet_size 通過pgbouncer最大的包大小,包可以是乙個sql,也可以是返回的結果,預設值是2147483647
listen_backlog tcp監聽函式listen的backlog引數,預設值為128
sbuf_loopcnt 處理過程中,每個連線處理多少資料就切換到下乙個連線。預設為5,如果設定為0,表示不限制。不限制時,乙個連線傳送大量資料,另外的連線可能就會空閒,導致被結束掉。
tcp_defer_accept linux下,預設為45,其他平台為0。詳細解釋用man 7 tcp來檢視
tcp_socket_buffer 預設沒有設定
tcp_keepalive 是否以作業系統的預設值開啟基本的keepalive 設定,在linux下,作業系統的keepalive裡,預設值時tcp_keepidle=7200, tcp_keepintvl-75,tcp_keepcnt=9,其他作業系統型別,預設值為1
tcp_keepcnt 預設未設定
tcp_keepidle 預設未設定
tcp_keepintvl 預設未設定
Bean常用配置項
id bean id bean的唯一標識 class bean所指向的類 scope 作用域 seingleton 預設 單例,在乙個bean容器中只存在乙份 prototype 每次請求 每次使用 建立新的例項,destory方式不生效 request 每次http請求建立乙個例項且僅在當前req...
SpringBoot 常用配置項
本文介紹spring boot web開發最常用的配置項 web常用配置項 預設值說明 debug false 開啟 關閉除錯模式 server.port 8080 伺服器指令碼 server.servlet.context path 應用上下文 預設字符集編碼 spring.thymeleaf.c...
axios常用配置項
1 url 必寫 請求位址 2 method 請求方法,預設是get 3 baseurl 常用 baseurl會新增到url前 url是絕對位址除外 4 transformrequest transformrequest選項允許我們在請求傳送到伺服器之前對請求的資料做出一些改動 該選項只適用於以下請...