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显得有点“多管闲事”。

pooler [转]的更多相关文章

  1. pooler 连接池中报错" error_no_members"

    连接池驱动,pooler 在使用中会报错" error_no_members" 分析:可能有以下3个地方对其有影响:    1)member 可能没回收: 2)wait_for_p ...

  2. [Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集

    Erlang Resources 小站 2013年7月~12月资讯合集,方便检索.     附 2013上半年盘点: Erlang Resources 小站 2013年1月~6月资讯合集    小站地 ...

  3. redis lua

    需求是在缓存最近一周内用户所有消息列表,考虑用Redis 存储:为每个存储一个独立Sorted Set,value 为消息体,Score 为MessageId,用以实现增量消息同步. 问题就来了:So ...

  4. OpenERP ORM 对象方法列表

    OpenERP对象支持的字段类型有,基础类型:char, text, boolean, integer, float, date, time, datetime, binary:复杂类型:select ...

  5. Tomcat:基于HTTP协议的Connector配置

    Tomcat Connector 是请求接收环节与请求处理环节的连接器,具体点说,就是将接收到的请求传递给Tomcat WEB容器进行处理. Tomcat可以处理的不同协议的请求,例如HTTP协议.A ...

  6. SHARE NOTHING SHARE EVERYTHING

    http://mp.weixin.qq.com/s?__biz=MjM5ODYwMjI2MA==&mid=2649736156&idx=1&sn=23931f48282f6ef ...

  7. React v16-alpha 从virtual dom 到 dom 源码简读

    一.物料准备 1.克隆react源码, github 地址:https://github.com/facebook/react.git 2.安装gulp 3.在react源码根目录下: $npm in ...

  8. pgbouncer配置

    DESCRIPTION pgbouncer is a PostgreSQL connection pooler. Any target application can be connected to  ...

  9. worker_pool的例子

    鉴于poolboy的坑,pooler不支持r18,又有在知乎上看到大神推荐worker_pool这个进程池框架(工作者进程在创建时崩溃,worker_pool不受影响),所以研究了下,贴个小例子 my ...

随机推荐

  1. c language compile process.

  2. window postgresql 10.4安装

    window installer下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 其他版本官网下载地址 ...

  3. 2018 Multi-University Training Contest 7

    GuGuFishtion dls真厉害,快速求$\sum_{a=1}^n \sum_{b=1}^m gcd(a,b) $的个数,我想的方法是根据上节课dls讲的方法,要容过来容过去,这次不用了. 则$ ...

  4. UVA 11059 Maximum Product【三层暴力枚举起终点】

    [题意]:乘积最大的子序列.n∈[1,10],s∈[-10,10] [代码]: #include<bits/stdc++.h> using namespace std; int a[105 ...

  5. Codeforces 761C Dasha and Password(枚举+贪心)

    题目链接 Dasha and Password 题目保证一定有解. 考虑到最多只有两行的指针需要移动,那么直接预处理出该行移动到字母数字或特殊符号的最小花费. 然后O(N^3)枚举求最小值即可. 时间 ...

  6. Java NIO.2 Files类的常用方法

    Files类是一个工具类,提供了大量的静态方法来操作文件.文件夹. Files类常用方法: long size(Path  path)    //返回文件大小 boolean  isDirectory ...

  7. 巧用chrome开发者工具

    说明:截图中的Chrome版本为52,不同版本可能略有区别. 常用设置 开发时消除静态资源缓存不能立刻更新的困扰,勾选Disable cache即可 切换颜色显示格式 修改默认颜色显示格式,在Sett ...

  8. zabbix-agent安装报错

    最近接触了zabbix,觉得挺好用的,再一次安装agent的过程中,报了如下错误: [root@11005499 ~]# yum install zabbix-agent -y ... groupad ...

  9. xss---攻击

    xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意 ...

  10. mac 破解photoshop cs6

    1 首先安装photoshop cs6,安装好后退出 2 下载破解补丁 破解补丁文件网盘下载:https://pan.baidu.com/s/1hrXieqS 或自行在百度网页里搜amtlib.fra ...