2.1版本引進(jìn)了 連接池操作,以前的版本我記得有看到過帖子是使用count有多少,就有多少個連接,
那么在這種情況下我想問問,我不使用協(xié)程操作,我想使用最新2.1版本,但還是想自適應(yīng)比如有多少個count就有多少個連接這種,我是不是可以不配置 options 和 pool 參數(shù),以上疑問 包括了Mysql 和 Reids 配置 問題,請大佬解答一下
不開協(xié)程的話仍然是有多少進(jìn)程開多少數(shù)據(jù)庫連接。不開協(xié)程所有邏輯和原來一樣。
mysql 和 redis ,pool 參數(shù) 我不傳遞也是可以的對嗎?
如果我傳遞了,是所有進(jìn)行共享pool的 連接數(shù),還是已每一個進(jìn)程都會獨立擁有一個 Pool的參數(shù)配置連接數(shù)
Connection pool, supports only Swoole or Swow drivers.,我看Redis配置這里是這么寫的,如果我不開啟協(xié)程,配置Pool ,是否還是是單進(jìn)程單連接,并未產(chǎn)生多連接,
那這里就有疑問了,就是在單獨進(jìn)程都會產(chǎn)生一個mysql連接池,大多數(shù)情況下同一時刻都只會操作一個數(shù)據(jù)庫鏈接啊,連接池就沒有意義啊。
go連接池在全局是一個連接池。剛剛你們上述對話我理解是每一個進(jìn)程都會產(chǎn)生一個連接池;而不是全局共用一個連接池。
一個進(jìn)程可以有多個協(xié)程,多個協(xié)程需要同時操作數(shù)據(jù)庫時需要多個數(shù)據(jù)庫連接,需要連接池管理。
不使用協(xié)程就仍然是一個進(jìn)程一個數(shù)據(jù)庫連接。
懂了,就是我這邊使用 swow驅(qū)動情況下,如果我代碼中不使用協(xié)程下,也會是連接池模式,最小連接數(shù)設(shè)置1,然后我使用了協(xié)程中后,連接池都會自動增加連接數(shù)。對于每一個進(jìn)程都是一樣的。單獨不會互相影響。
大佬在問一個問題,我對這個進(jìn)程的count有些不明白,比如我是 4h4g的服務(wù)器,我按照你默認(rèn)的cpu_count 4,這個情況,我高并發(fā)一直測試,發(fā)現(xiàn)cpu并沒有怎么動,然后我嘗試隊列消費也設(shè)置 cpu_count 4,發(fā)現(xiàn)也沒怎么動,那么綜合情況,這個進(jìn)程數(shù)量,如果本身代碼不消耗大量cpu資源的情況下,我可以開多一些 比如cpu_count * 50這樣子,我看進(jìn)程多了內(nèi)存會增長,我是不是只需要保證內(nèi)存不會爆,且 高頻壓測的情況下 cpu占用率也不爆,這就是一個合適的值