我正在使用Beego和Riak开发一个后端。我正在寻找一种方法来保持riak连接池的活动状态,但在文档中除了与SQL相关之外,我什么也找不到。
我真的是Go语言的新手(两天前开始学习),我不知道连接池是不是写的选择。据我所知,每个Go应用程序都应该被设计成独立工作,允许轻松的可扩展性。如果这是写,也许单个连接应该是更好的选择。如果是这样,我可以使用的最佳实践是什么?
如果我的问题看起来像noobie,我很抱歉,但以我的Django背景,我不习惯管理数据库连接。
我使用的riak连接器是"github.com/tpjg/goriakpbc“
发布于 2015-02-05 00:17:35
是否使用连接池更多地取决于您的使用模式和工作负载,而不是您选择的数据存储或客户端库。
每次建立TCP连接时,都会进行三次握手:
syn-->服务器syn-ack--服务器ack-->服务器<代码>H29<代码>G210这通常只需要很少的时间和网络带宽,并且会在每台机器上的连接跟踪表中创建一个条目。如果您的应用程序为每个请求打开一个到服务器的新连接,并且将每秒发送数千个请求,则您可能会使连接跟踪表溢出,从而阻塞新连接,直到某些以前的连接关闭;或者创建连接的开销流量可能会限制您每秒可以处理的请求数。
如果您决定使用池并使用处理单个请求然后终止的短暂进程,您将需要一些方法来创建和维护独立于请求进程的连接,以及请求进程使用池中的连接发送请求和接收响应的方法。
您可能会发现,如果您的应用程序没有生成足够的通信量,那么设计您的应用程序以使用连接池所需的工作量将超过使用连接池所获得的任何好处。
没有正确或错误的答案,这在很大程度上取决于您的用例、请求量和网络能力。
https://stackoverflow.com/questions/28322666
复制相似问题