erlang的pool模块是用来进行简单的分布式负载均衡管理的模块,它通过一个中心server对一群附属slave节点进行管理:
1. slave节点会定期向中心server发送当前负载消息
2. 可以向中心server发送消息查询最低负载的节点
配置和使用pool模块:
1. 建立rsh无密码信任
由于pool其实是通过rsh完成的server对slave的启动控制管理的,所以必须打通server到slave的无密码信任,具体办法可以使用搜索引擎获取,简单步骤如下:
1. 修改/etc/xinet.d目录下的rsh,rlogin,rexec文件,将disable=yes,改为no
2. 修改/etc/host.equiv文件,加入slave信任的server的hostname,将文件权限修改为644
3. 重启服务:/etc/init.d/xinetd restart
4. 因为rlogin,不会执行用户目录下的.bash_profile文件,需要通过.bash_rc配置rsh、erlang等的PATH路径,类似PATH=/usr/local/bin/:/usr/bin/:/usr/kerberos/sbin:$PATH:$HOME/bin
2. 在server端建立.hosts.erlang文件
输入需要被加入的slave的host,格式如下:
“hostname1”
“hostname2”
(空行)
3. erl -name XXX 启动erlang的shell,调用pool:start(xxx)启动pool模块提供的简单节点管理服务
4. erlang的pool模块其实核心代码功能都是由erlang的slave模块完成的,所以掌握slave的模块可以方便对pool模块进行理解,比如在pool模块中动态加入slave节点:
1. pool模块并没有直接这样的函数,但是只需要简单看一下pool模块实现的源代码就可以很容易知道怎么去做
2. 通过slave:start函数启动一个可被加入的slave节点
3. 通过pool:attach函数完成slave节点加入
本文介绍了Erlang的pool模块在分布式负载均衡中的应用。该模块通过中心server管理slave节点,slave节点定期报告负载情况。配置pool模块涉及建立rsh无密码信任、设置主机文件及启动节点服务。在server端创建.hosts.erlang文件,并通过erlang shell启动pool服务。了解slave模块有助于深入理解pool,如动态添加slave节点,可通过slave:start和pool:attach完成。
163

被折叠的 条评论
为什么被折叠?



