如何将Riak连接池与Beego框架一起使用

如何将Riak连接池与Beego框架一起使用,go,riak,beego,Go,Riak,Beego,我正在使用Beego和Riak开发一个后端。我正在寻找一种保持riak连接池活动的方法,但在文档中除了与SQL相关的内容外,我什么也找不到 我是一名真正的新手(两天前开始学习),我不知道连接池是否是写作的选择。据我所知,每个Go应用程序都应该设计为独立工作,从而易于扩展。如果这是写的话,也许一个单一的连接应该是更好的选择。如果是这种情况,我可以使用的最佳实践是什么 如果我的问题似乎没有问题,我很抱歉,但是,以我的Django背景,我不习惯管理db连接 我使用的riak连接器是“github.co

我正在使用Beego和Riak开发一个后端。我正在寻找一种保持riak连接池活动的方法,但在文档中除了与SQL相关的内容外,我什么也找不到

我是一名真正的新手(两天前开始学习),我不知道连接池是否是写作的选择。据我所知,每个Go应用程序都应该设计为独立工作,从而易于扩展。如果这是写的话,也许一个单一的连接应该是更好的选择。如果是这种情况,我可以使用的最佳实践是什么

如果我的问题似乎没有问题,我很抱歉,但是,以我的Django背景,我不习惯管理db连接


我使用的riak连接器是“github.com/tpjg/goriakpbc”

是否使用连接池更多地取决于您的使用模式和工作负载,而您选择的是数据存储还是客户端库

每次建立TCP连接时,都会进行三次握手:

  • 客户端--
    syn
    -->服务器
  • 客户端服务器
  • 这通常需要非常少的时间和网络带宽,并在每台机器的conntrack表中创建一个条目。如果您的应用程序为每个请求打开到服务器的新连接,并且每秒将发送数千个请求,则您可能会使conntrack表溢出,阻止新连接,直到以前的一些连接关闭;或者,创建连接的开销流量可能会限制每秒可以处理的请求数

    如果您决定使用池并使用处理单个请求然后终止的短期进程,则需要一些方法来创建和维护与请求进程分开的连接,以及请求进程使用池中的连接发送请求和接收响应的方法

    您可能会发现,如果您的应用程序没有生成足够的通信量,那么将应用程序设计为使用连接池所需的工作量将超过使用连接池所获得的任何好处

    答案没有对错之分,这在很大程度上取决于您的用例、请求量和网络能力