Přejděte na database/sql
nezabrání vám ve vytváření nekonečného počtu připojení k databázi. Pokud je ve fondu nečinné připojení, bude použito, jinak se vytvoří nové připojení.
Při zatížení tedy vaše obslužné rutiny požadavků sql.DB pravděpodobně nenacházejí žádná nečinná připojení, a tak se v případě potřeby vytvoří nové připojení. To znamená, že pokud je to možné, znovu použijeme nečinná připojení a v případě potřeby vytvoříme nová, čímž se nakonec dosáhne maximálního počtu připojení pro Db. A bohužel v Go 1.1 neexistuje pohodlný způsob (např. SetMaxOpenConns ), abyste omezili otevřená připojení.
Upgradujte na novější verzi Golang. V Go 1.2+ získáte SetMaxOpenConns . A prohlédněte si dokumentaci MySql pro zahájení nastavení a poté naladit.
db.SetMaxOpenConns(100) //tune this
Pokud musíte použít Go 1.1, musíte ve svém kódu zajistit, aby *sql.DB
je používáno pouze N klienty najednou.