poolerpoolboy都是用erlang写的管理进程池的库。

pooler/poolboy
github : seth/pooler · GitHub
github : devinus/poolboy · GitHub

pooler相对于poolboy的优点

pooler比poolboy多了些概念

  • group

    在pooler里,每个pool都将属于一个group。这个概念的好处是,当我们调用pooler:take_group_member/1从进程池里取出一个member进程时,pooler会自动做负载均衡(其实跟当前Reverse做的工作一样,就是随机一下)。

    默认属于default组.

  • return member pool with status

    归还member进程的时候可以标记归还进程的状态,可以为okfail。pooler接收到该member进程后会检查其归还状态,若归还状态为fail,则异步将其restart。

  • track process

    其实进程跟踪严格说来就是根据归还状态来实现的,但因为这一点感觉尤其“贴心”,所以我想挑出来提一下。
    pooler会检测consumer进程的退出状态,如果consumer以normal退出,则pooler直接回收该consumer拿的member进程;否则restart其member进程。

  • 进程池可自动动态伸缩

    pooler支持进程池自动动态伸缩,它允许在进程池创建的时候传入以下参数自定义动态伸缩策略:

    • init_count: 一般情况下的进程池大小

    • max_count: pooler能自动“”,但最大不超过max_count

    • cull_interval = {tick, threshold}: tick是个时间段,每隔这么个时间pooler会把进程池大小“”回init_count,或者当进程池中空闲进程数目到达threshold的时候触发“”的动作,缩回init_count

pooler相对于poolboy的缺点
    • 用户失去了对member进程的可控度

      pooler会自动管理失效的member进程,当member进程down掉了就将其重启,一旦重启了就继续使用该member进程。这么做的好处显而易见,就是方便;但是坏处也同样令人头疼,就是用户失去了对于失效的member进程的控制。比如我想自定义member进程的重启策略,这就办不到。

      在用poolboy的时候,每当一个member进程down掉时用户会收到DOWN消息,用户可以以此自定义其重启策略。从这个角度上来说,pooler显得有点“多管闲事”。

最新文章

  1. 《C++ Primer》 ---- 关于变量 与 基本类型
  2. Sublime Text 3 安装Go语言相关插件gosublime
  3. Leetcode#81 Search in Rotated Sorted Array II
  4. QString->string->wstring->LPCWSTR
  5. hdu 4000 树状数组
  6. 在linux下的apache配置https协议,开启ssl连接
  7. Understanding GC pauses in JVM, HotSpot's minor GC.
  8. String的几种比较方法对比(Compare,CompareTo, CompareOrdinal、Equals)
  9. OpenGL.Vertex Array Object (VAO).
  10. 9、Libgdx的输入处理
  11. Java内存模型探秘
  12. HDU4651 Partition 【多项式求逆】
  13. Struts2与spingmvc区别
  14. Ubuntu Desktop 编译 ffmpeg (简略的写写)
  15. 验证码处理类:UnCodebase.cs + BauDuAi 读取验证码的值(并非好的解决方案)
  16. MySQL 之 库操作
  17. 转: js实现全角半角检测的方法
  18. Java Switch支持的类型问题
  19. java多态--算法实现就是多态
  20. 系统之锹sysdig:Linux服务器监控和排障利器

热门文章

  1. my conclusion about time planing and requirement changes.
  2. 禁止复制(copy),禁用鼠标右键!
  3. 泛型数组 + 记录类型 + Json 之间的转换
  4. Swoole MySQL 连接池的实现
  5. 洛谷—— P2417 课程
  6. Storyboards Tutorial 01
  7. 学习PHP:PHP提取的时间出现不准确
  8. MyEclipse 中自定义日期格式
  9. C#里判断字符串是否为纯数字
  10. 人工神经网络--ANN