在文章《使用 acl 服务器框架编写负载均衡的应用服务》中介绍了 acl TCP 连接分配器的作用及原理,本节主要介绍 TCP 连接分配器的配置方法,及使用 acl 的服务器模板创建的应用服务子进程的配置方法(目前支持该功能的服务器模板有:线程池服务模板、协程服务模板以及非阻塞服务模板)。
一、TCP连接分配器的配置要点
TCP 连接分配器即 master_dispatch 程序,该程序也是一个服务进程,负责接收外部客户端的TCP连接,同时将该连接通过 UNIX 域套接口传递给后面的应用服务进程,该程序在 acl 库的 acl/app/master_dispatch/server 目录下。
master_dispatch 程序本身是基于非阻塞服务器模板编写,其中的配置项 aio_xxx 属于非阻塞服务器模板配置项,master_xxx 属于通用服务配置项,其中 master_service 配置项指明了 master_dispatch 监听的服务地址,如:master_service = 80, dispatch.sock, 1080,该配置指明 master_dispatch 同时监听 80 TCP 端口、dispatch.sock UNIX 域套接口及 1080 TCP 端口。外部客户端连接 80 端口,后端服务应用子进程连接 dispatch.sock 与 master_dispatch 进行通信。
关于 master_dispatch 应用本身的配置项说明如下:
1.1、backend_service = dispatch.sock
该配置项指明了后端应用服务子进程将会连接该 UNIX 域套接口,一方面应用服务进程向 master_dispatch 汇报自己的 TCP 连接数、总线程数、繁忙线程数等信息,该配置项的值必须与 master_service 中监听的 UNIX 域套接口保持一致;
1.2、manager_timer = 1
该配置项指明 master_dispatch 每隔 1 秒检测接收到的且未被传递给后端应用服务进程的 TCP 连接,尝试将这些连接再次传递给后端应用服务进程,同时将超时未传递的连接关闭,这样做的好处是当后端应用服务进程重启时依然可以接收外部客户端的连接,因为这些 TCP 连接暂时由 master_dispatch 保持着;
1.3、conn_expired = 10
该配置项指明当一个 TCP 连接由 master_dispatch ”保持“的超时时间为 10 秒,即超过 10 秒依然未被传递给后端应用服务进程的 TCP 连接将被 master_dispatch 强行关闭,而 TCP 连接一旦传递给后端应用服务进程则 master_dispatch 则将其从本身的缓存队列中删除;
1.4、status_servers = 127.0.0.1:10081
该配置项指定了 dispatch_mananger(用来收集缓存所有 master_dispatch 节点信息的服务进程)监听的服务地址,该配置项可以同时配置多个 dispatch_manager 的监听地址,格式为:ip1:port, ip2:port ...;
1.5、status_timer = 2
该配置项指定 master_dispatch 定期向 dispatch_manager 汇报状态的时间间隔为 2 秒;
1.6、status_service = 1080
该配置项指定 master_dispatch 可以在 1080 端口接收其它应用的状态查询请求,即 master_dispatch 不仅可以向 dispatch_manager 发送状态数据,同时也可以接收其它模块的状态请求;
1.7、server_timer = 1
该配置项指定 master_dispatch 每隔 1 秒汇总一下后端应用服务子进程的状态(总 TCP 连接数,总线程数,总繁忙线程数等);
1.8、service_name = app_service_name
该配置项指定 master_dispatch 所代表的服务节点的应用名称。
1.9、aio_access_allow = all
除了以上配置项外,还需检查 aio_access_allow 配置项是否为 all,该配置项指定允许连接 master_service 配置的 80 端口的客户端 IP 地址。
二、线程池服务器配置要点
2.1、ioctl_dispatch_addr = /opt/acl/var/private/dispatch.sock
该配置项指定 master_dispatch 进程监听的 UNIX 域套接口地址的全路径,线程池服务进程连接该地址与 master_dispatch 进行通信,汇报自己的状态(TCP连接数,线程数及繁忙线程数等),同时通过此 UNIX 域套接口从 master_dispatch 接收外部客户端连接;
2.2、ioctl_dispatch_type = app_service_name
该配置项指定本线程池服务的应用名称,一般与所属的 master_dispatch 中的 service_name 配置项相同即可;
2.3、master_maxproc = 1
该配置项指定进程池最大进程数;
2.4、master_prefork = 1
该配置项指定预启动的进程数,一般与 master_maxproc 相同即可,因为需要应用服务进程连接 master_dispatch 以便建立 UNIX 域套接口,所以要求此配置必须打开。
三、非阻塞服务器配置要点
3.1、aio_dispatch_addr = /opt/acl/var/private/dispatch.sock
该配置项指定 master_dispatch 进程监听的 UNIX 域套接口地址的全路径,非阻塞服务进程连接该地址与 master_dispatch 进行通信,汇报自己的状态(TCP连接数等),同时通过此 UNIX 域套接口从 master_dispatch 接收外部客户端连接;
3.2、aio_dispatch_type = app_service_name
该配置项指定本非阻塞服务的应用名称,一般与所属的 master_dispatch 中的 service_name 配置项相同即可。
3.3、master_maxproc = 1
该配置项指定进程池最大进程数;
3.4、master_prefork = 1
该配置项指定预启动的进程数,一般与 master_maxproc 相同即可,因为需要应用服务进程连接 master_dispatch 以便建立 UNIX 域套接口,所以要求此配置必须打开。
相关推荐
锐捷交换机ACL配置 基于时间的acl配置
cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置...
主要包括:lib_acl(用 C 语言写的基础库)、lib_protocol(用 C 语言写的一些网络应用协议库)、lib_acl_cpp(用 C++ 语言编写,封装了 lib_acl/lib_protocol 两个库,同时增加更多实用的功能库)、 lib_fiber(用 ...
访问控制列表ACL(Access Control List)是实现网络安全、性能稳定...2 ACL支持的License和配置注意事项 3 配置基于接口的ACL 4 配置基本ACL 5 配置高级ACL 6 配置二层ACL 7 配置用户ACL 8 配置基于MPLS的ACL 9 维护ACL
02-负载均衡命令参考 03-虚拟化技术命令参考 04-接口管理命令参考 05-二层技术-以太网交换命令参考 06-三层技术-IP业务命令参考 07-三层技术-IP路由命令参考 08-ACL和QoS命令参考 09-安全命令参考 10-可靠性命令参考...
本资料主要为hc3交换机的acl配置,为基本acl配置,高级acl配置,二层acl配置
華為ACL配置注意華為ACL配置注意華為ACL配置注意華為ACL配置注意
熟练掌握2种访问控制列表的配置实现技术。特别掌握ACL的配置方法
7 ACL配置 7-1 7.1 访问控制列表简介 7-2 7.1.1 访问控制列表概述 7-2 7.1.2 访问控制列表的分类 7-2 7.1.3 访问控制列表的匹配顺序 7-2 7.1.4 访问控制列表的步长设定 7-4 7.1.5 基本访问控制列表 7-4 7.1.6 高级...
H3C路由器基本ACL配置案例
ACL配置实验
H3C交换机 典型配置举例-6W100-ACL典型配置举例
全面的ACL配置,内容注释,涉及acl的时间列表,acl的自反列表
思科模拟器配置文件及其说明,包含三层交换机配置、nat的转换、静态路由的配置和acl的相关知识与配置
华为Ensp,基本ACL,高级ACL,三层ACL,二层ACL,命名ACL配置大全.doc
详细解答华为S5700交换机, VLAN划分 和 ACL配置命令,非常适合新手
基于acl库封装的redis client vs2010工程; 运行时解压到: redis-acl\lib_acl_cpp\samples\redis路径下,把lib_acl_vc2010d.lib、lib_acl_cpp_vc2010d.lib放到 \redis-acl\lib_acl_cpp\samples\redis\redisclient...
华为交换机路由器ACL原理+最常用操作配置手册
ACL和QoS典型配置
实验要求: ... 2、192.168.0.0/24网段可以访问server的FTP,其他访问均被拒绝。 ... 4、服务器server可以ping通所有设备,但所有设备不可以ping服务器sever。...本实验可以有哪些不同的设置ACL访问控制列表的方法实现?