acl 中服务器框架模块是一个非常重要的模块,使用该模块技术人员可以快速地写出稳定、安全、高效的网络服务应用,该模块主要来源于著名的邮件服务器程序 (Postfix) 中的 master 模块,为了便于开发者使用,本人又增加了许多有益的功能模块。在 acl 的文章分类 ”acl开发--服务器篇“ 和 ”acl_cpp开发--服务器开发“ 中有关 master 服务器框架的流程图及实例讲解,本文将只对比 acl 里的 master 服务器框架(简称 acl_master) 和 Postfix 中的 master 服务器框架的不同点,以便于开发人员根据不同的使用场景选择不同的服务模块。
功能点 | Postfix master | acl_master |
半驻留服务模式 | 支持 | 支持 |
安全控制 | 严格的用户权限控制 | 严格的用户权限控制 |
配置方式 | 所有服务配置在同一个配置文件中 | 一个服务一个配置文件 |
进程池模式 | 支持 | 支持 |
触发器模式 | 支持 | 支持 |
非阻塞模式 | 功能一般 | 功能强大 |
线程池模式 | 不支持 | 支持 |
在线升级 | 支持 | 支持 |
预启动 | 不支持 | 支持 |
最小进程数控制 | 不支持 | 支持 |
最大进程数控制 | 支持 | 支持 |
监控子进程报警机制 | 不支持 | 支持 |
开发过程调试功能 | 不太方便 | 方便(很容易使用 valgrind 检查) |
客户端连接访问控制 | 应用自己保证 | 框架自动支持 |
单一进程监听多个地址 | 受限 | 支持 |
单一进程同时监听TCP及域套接口 | 不支持 | 支持 |
子进程运行身份控制 | 支持 | 支持 |
日志记录方式 | 支持 syslog | 支持syslog-ng;允许用户注册自己的日志处理过程;允许同时写入多个目标日志对象中 |
子进程崩溃是否允许产生 core 文件 | ? | 通过配置项控制,便于快速消除错误 |
是否支持UDP通信模式 | 不支持 | 支持 |
是否支持多进程TCP连接均匀化 | 不支持 | 支持 |
以上为 Postfix 的 master 服务器模块与 acl 中的 acl_master 服务器模块的主要区别,当然这个对比并不是说明 acl 的 acl_master 服务器模块优于 Postfix 的 master(毕竟 acl 的服务器模块是来源于 Postfix),而是为了说明 acl 的 acl_master 服务模块可能更方便技术人员开发自己的服务应用。
OK,就先写这些,欢迎大家批评建议。
参考:
github: https://github.com/zhengshuxin/acl/
SVN地址:svn://svn.code.sf.net/p/acl/code/
微博: http://weibo.com/zsxxsz/
来源:oschina
链接:https://my.oschina.net/u/568966/blog/308675