美文网首页
不推荐使用Netty自带连接池ChannelPool

不推荐使用Netty自带连接池ChannelPool

作者: 司青玄 | 来源:发表于2019-06-10 18:33 被阅读0次

    首先,网上关于Netty自带连接池ChannelPool的文章很少,推测一下原因可能是因为大家使用Netty时多数都是做为服务端来应用,因此基本上用不到连接池。但是如果你使用Netty封装一个HTTP客户端那就必须考虑Channel池了。

    不推荐使用内置ChannelPool的原因如下:

    • 没有健康检查机制
      如果server端关闭了连接,那么池中的某个channel会无效,由于缺乏健康检测,这个无效的channel还是会被调用方获取到。
    • 无法剔除(evict)指定Channel
      这个池居然只能添加Channel而不能删除!也就是说如果你明确知道了哪个Channel已经被关闭了,你也没有办法把这个Channel从池中剔除掉,简直了
    • 无法动态控制连接数
      我们在使用数据库连接池的时候都会配置类似于maxActive, maxIdle之类的参数,意思是池中最大允许有多少连接、最大空闲连接等。我们希望能在空闲的时候主动释放掉一些连接来节省资源,繁忙的时候可多创建一些连接。这应该是非常基本的功能了吧,不好意思,不支持!

    所以,这个池如果你只是用来写写玩具代码然后发个博客还是没问题的,生产环境就算了,还是使用apache的对象池或者自己实现一个吧。

    相关文章

      网友评论

          本文标题:不推荐使用Netty自带连接池ChannelPool

          本文链接:https://www.haomeiwen.com/subject/shuzxctx.html