我正在将 golang 与 Mysql 一起使用。我正在使用apache benchmark tool. 我收到太多连接错误。我读了这篇文章。所以,我SetMaxOpenConns(100)在我的代码中添加了。我仍然收到太多连接错误。
我正在做以下查询
ab -n 1000 -k -c 20 -p post.txt -T application/x-www-form-urlencoded http://localhost:8084/abcd
注意: post.txt 文件包含 35 个 id 的数组(整数类型)。这是我的主要功能:
db, err := models.NewDB("root:@/rules")
if err != nil {
panic(err)
}
db.SetMaxOpenConns(100)
http.Handle("/abcd", getReq(db))
log.Fatal(http.ListenAndServe(":8084", nil))
我在 goroutine 中查询所有 id 的这个函数。
func getRuleforProduct(db *sql.DB, id int) map[int]string {
m := make(map[int]string)
var res string
err := db.QueryRow("select rules from table where product_id = ?", id).Scan(&res)
checkError(err)
m[id] = res
return m
}
即使每秒请求较少,如何解决此问题。我希望代码至少适用于 20 个并发请求。
桃花长相依
梵蒂冈之花
相关分类