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,就先写这些,欢迎大家批评建议。
参考:
本文地址:http://zsxxsz.iteye.com/blog/1892313
源码地址:https://sourceforge.net/projects/acl/
SVN地址:svn://svn.code.sf.net/p/acl/code/
Github: https://github.com/acl-dev/acl
QQ 群:242722074
相关推荐
acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、...
acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、...
整个 acl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_...
acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、...
acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、...
acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、...
acl 框架库是一个 C 库,主要包含:服务器开发框架、同步/异步网络通讯、常用数据结构、进程池/线程池、流式 xml/json 解析器、http/ping 应用协议等内容。 acl 包括以下丰富的常用函数库: 1、常见网络应用库:SMTP...
acl_cpp(已包含在acl项目中:https://sourceforge.net/projects/acl/,请从acl项目url下载)是acl的c ++包装库,并且acl_cpp比...使用acl_cpp,您将获得更强大的acl功能,并且可以快速开发,进行模块编程,祝您好运!
acl工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程,多进程,非二进制,异步,...
acl_cpp(已包含在acl项目:https://sourceforge.net/projects/acl/,请从acl项目url下载)是acl的c++封装库,acl_cpp比acl有很多有用的功能...有了acl_cpp,你会得到更强大的acl功能,快速开发,模块编程,祝你好运!
Fourinone框架提供了一系列并行计算模式(农民工/包工头/职介绍/手工仓库)用于利用多机多核cpu的计算能力;提供完整的分布式缓存和小型缓存用于利用多机内存能力;提供像操作本地文件一样操作远程文件(访问,并行读写,...
FourInOne(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我也看了老外写的其他开源框架,也对分布式计算进行了长时间的思考,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...
PAM(Pluggable Authentication Modules)是一套共享库,其目的是提供一个框架和一套编程接口,将认证工作由程序员交给管理员,PAM允许管理员在多种认证方法之间作出选择,它能够改变本地认证方法而不需要重新编译与...
下面简单介绍IIS的安装过程: 依次点击“开始” => “控制面板” => “程序”,选择“打开或关闭Windows功能”。 这是一个触发UAC的操作,如果Windows Vista没有关闭UAC,则会弹出提示信息,确认并继续; 如果仅需要...
ASP.NET 页和控件框架是一种编程框架,它在 Web 服务器上运行,可以动态地生成和呈现 ASP.NET 网页。可以从任何浏览器或客户端设备请求 ASP.NET 网页,ASP.NET 会向请求浏览器呈现标记(例如 HTML)。通常,您可以对...
javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API。 javax.sql.rowset JDBC RowSet 实现的标准接口和基类。 javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据...
Fourinone框架提供了一系列并行计算模式(农民工/包工头/职介绍/手工仓库)用于利用多机多核cpu的计算能力;提供完整的分布式缓存和小型缓存用于利用多机内存能力;提供像操作本地文件一样操作远程文件(访问,并行...
javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API。 javax.sql.rowset JDBC RowSet 实现的标准接口和基类。 javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型...