溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進行PostgreSQL中Pgbouncer的問題分析

發(fā)布時間:2022-01-04 09:54:04 來源:億速云 閱讀:117 作者:柒染 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(guān)如何進行PostgreSQL中Pgbouncer的問題分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

知識的學習是越學越不會,越學發(fā)現(xiàn)的"黑洞"和自己的欠缺就會越多,所以一直報以心虛的狀態(tài)來學,可能理解多年的東西他變化了,或者當初就沒有理解的徹底,而不自知.

Pgbouncer 看似是一個輕量級的連接緩沖,今天就來整理一下,來看看知識的黑洞

如何進行PostgreSQL中Pgbouncer的問題分析

問題1

我的pgbouncer 到底是應(yīng)該是和PostgreSQL 安裝在一起,還是和別的數(shù)據(jù)庫中間件一樣單獨安裝或者DOCKER 安裝.

個人認為,pgbouncer屬于輕量級的緩沖池程序,和postgresql本身部署在一起,并沒有什么不妥,從功能上來講比較單一,并沒有特別復(fù)雜的功能,例如讀寫分離,或者語句的變更,或者語句的審核等復(fù)雜的功能, pgbouncer 就是要提高postgresql的進程連接的復(fù)用,提高postgresql 的處理高并發(fā)連接中的性能表現(xiàn).應(yīng)該是一個PG 自己安裝一套pgbouncer, 這里對比proxysql 功能和特點完全不一致,雖然都是數(shù)據(jù)庫的中間件緩沖.

問題2 我修改了pgbouncer 的配置,我在從啟動中連接會斷嗎? 會有多大的影響.

這邊做了一個測試, 分兩塊來說

1 你的pool mode 是session, 在我們并發(fā)3000連接中,重啟動,整體的連接失效,程序報錯

2 你的pool mode 是 transaction 我們還是并發(fā)3000連接,重啟動,在重啟動,設(shè)置suspend 的狀態(tài)是,正常工作的連接失效, 后續(xù)重啟動完畢后,連接立即復(fù)原.

從影響性方面也分兩個面來說,如果你是session 則你整體的這個session 會斷掉,如果你業(yè)務(wù)繁忙,則非常不建議你,隨便的進行重啟的活動

transaction 方面,因為連接的特性使然,如果在少量業(yè)務(wù)(低峰期),必須要重啟,還是可以考慮重啟動,

但怎樣都避免不了,連接要報錯的必然,所以對于某些新建庫,新加應(yīng)用的場景,還請相關(guān)人員考慮,在非業(yè)務(wù),或低峰期,與業(yè)務(wù)和商量好,在進行相關(guān)操作.

問題3  postgresql 有高可用,但pgbouncer 有沒有高可用,如果沒有怎么辦?

在默認的情況下,PG的集群中應(yīng)該只有一臺服務(wù)器提供寫服務(wù), 如果將pgbouncer 與pg安裝在一起,則這個問題并沒有意義, 因為pgbouncer 并不提供判斷主從的功能,并且也不提供故障轉(zhuǎn)移的功能,所以如果通過VIP 的方式訪問,則與pgbouncer 高可用沒有關(guān)聯(lián).

問題4  在使用pgbouncer 的過程,中,如果出現(xiàn)網(wǎng)絡(luò)問題,或者數(shù)據(jù)庫本身無法和pgboucner連接的情況后,網(wǎng)絡(luò)或數(shù)據(jù)庫的服務(wù)在恢復(fù)后,到底連接會怎么樣,

例如我正在查找一張大表, 網(wǎng)絡(luò)閃斷,或服務(wù)器重啟.

舉例,我們查詢一個表的200行記錄, 圖一是不使用pgbouncer 查詢的截圖,圖二 是使用pgbouncer 后的截圖.

如何進行PostgreSQL中Pgbouncer的問題分析

如何進行PostgreSQL中Pgbouncer的問題分析

如何進行PostgreSQL中Pgbouncer的問題分析

從上圖可以看到,在服務(wù)器無響應(yīng)的情況下, pgbouncer 到底做了什么, 如果光從應(yīng)用和數(shù)據(jù)庫連接中的故障處理來說,其實還好, 但如果將Pgbouncer 安裝在數(shù)據(jù)庫一端,這樣其實對應(yīng)用有的時候是隱蔽了某些關(guān)于服務(wù)器方面的例如重啟,或者其他方面的問題,在程序端可能一方看是減少了報錯的,那么問題的分析方和反映方就變換為了數(shù)據(jù)庫端.

那么問題可以在深入一點,如果此時沒有查詢,那pgboucner的 日志中還會有剛才的體現(xiàn)嗎? 結(jié)果是不會.

問題 5 在使用pgbouncer的情況下, 如果設(shè)置了使用了transaction ,但是連接中設(shè)置了與session等級的配置參數(shù),將不會起作用, 同時即使使用了 session的方式,也會因為下面的配置而出現(xiàn)不同的結(jié)果.具體請查詢相關(guān)的參數(shù)解釋,另外在使用transaction 模式,但應(yīng)用程序?qū)υL問有針對session 方式的強相關(guān)性,也會出現(xiàn)問題,請相關(guān)的架構(gòu)設(shè)計和程序人員能在程序設(shè)計時考慮.

看完上述內(nèi)容,你們對如何進行PostgreSQL中Pgbouncer的問題分析有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI