我正在构建TCP代理:client
proxy
Vertica
我有一个net.TCPListener
,它通过AcceptTCP()
接收传入请求并创建连接,然后通过net.DialTCP("tcp", nil, raddr)
进行到目标套接字的连接。看起来像一座桥。默认代理模型。首先,在第一个版本中,我遇到了麻烦:如果我有59个并行传入请求,那么一切都很好。但是,如果我再增加一个(60),我会遇到麻烦:1-59连接正常,但60和更新的连接是错误的。我无法正确捕获错误。看起来有些插座意外关闭其次,我尝试为侦听器设置队列。它对我有很大帮助:但是,如果我有超过258个请求,我将再次出错。
我的问题:net
程序包中的连接数是否有限制?可能是系统限制吗?
有关外部信息:Vertica在docker容器中运行,硬件/系统:macbook,vertica限制连接池:5,但池逻辑已实现到代理中。我还尝试了在没有池逻辑的情况下设置“原始”代理的原因(这就是为什么我为侦听器设置队列的原因:我不能超过Vertica用户池的阈值),结果是258个请求。
UPDATED:(05.04.2020)
看起来是系统限制错误。我在任何地方都提到我试图在一台PC上运行整个系统吗?因此,我所拥有的:我现在所拥有的:
我仍然需要对代理进行一些压力测试。为交换文件添加更少的内存并不能解决Windows PC上的问题。如有任何建议和想法,我将不胜感激。谢谢!
[我正在构建TCP代理:客户端代理Vertica,我有一个net.TCPListener,它通过AcceptTCP()接收传入的请求并创建连接,然后建立到目标的连接...
代理如何连接到Vertica?默认情况下,最多一次可以将50个普通的普通用户连接到一个Vertica节点。超级用户“ dbadmin”除此以外始终具有5个连接。