acl 服务器模块的部署

一、概述

      在文章 acl 服务器编程模型介绍开发多线程进程池服务器程序---acl 服务器框架应用快速创建你的服务器程序--single进程池模型 等文章中介绍了如何基于 acl 的 C 语言版编写服务器程序,而在 用 acl::master_aio 类编写高并发非阻塞服务器程序使用 acl::master_proc 类编写多进程服务器程序使用 acl::master_threads 类编写多进程多线程服务器程序 等文章则介绍了如何基于 acl 的 C++ 语言版本编写服务器程序。本文将介绍如何部署这些服务器程序。

 

二、启动方式

      从文章 协作半驻留式服务器程序开发框架 --- 基于 Postfix 服务器框架改造 可以看出,acl 的服务器框架中有一个总控制后台程序 acl_master,由它来启动调度服务子进程程序(这些子进程程序由用户根据自身需要基于 acl 的服务器框架编写);在 acl_master 的启动脚本中,将 acl_master 的配置文件(参考:acl/dist/master/conf/main.cf)通过命令行传递给它,acl_master 程序根据其中的配置项 service_directory 指定的目录,扫描该目录下子进程的配置文件(每一个服务子程序一个配置文件),根据每个配置文件的配置项来控制、启动每个子进程,这种方式有点类似于 LINUX 系统中的 xinetd 控制启动子进程的方式,只是比 xinetd 功能更为强大、效率更高。

 

三、安装

   3.1、安装目录

      在 acl 服务器程序的安装目录(假设 acl 服务的安装目录为 /opt/acl)下,一般应有如下目录:

      /opt/acl/libexec:存放包括 acl_master 在内的所有服务器程序;

      /opt/acl/conf:存放 acl_master 的配置文件目录;

      /opt/acl/conf/service:存放用户编写的服务器程序配置文件的目录;

      /opt/acl/var/log:存放程序日志文件;

      /opt/acl/var/pid:存放程序进程 ID 文件;

      /opt/acl/var/private:当子进程监听 UNIX 域套接口时,该目录存放具有私有访问权限的 UNIX 域套接口文件;

      /opt/acl/var/public:当子进程监听 UNIX 域套接口时,该目录存放具有公共访问权限的 UNIX 域套接口文件;

      /opt/acl/sh:存放一些控制启动停止 acl_master 的脚本程序。

    3.1、在 acl/lib_acl 目录下运行 make 命令时,acl_master 服务控制程序便生成于 acl/lib_acl/master 目录下,用户可以手工拷贝该程序至 libexec 目录下,同时将 acl_master 的配置文件 acl/dist/master/conf/main.cf 拷贝至 conf 目录下,并打开 main.cf 文件,将其中的 {install_path} 字符串替换成 acl 服务安装目录;

   3.2、用户将自己基于 acl 的服务器框架模板编写的可执行程序也拷贝至 libexec 目录下,将该程序的配置文件拷贝至 conf/service 目录下,同时修改该配置文件,将其中的 {install_path} 字符串替换成 acl 服务安装目录,将 master_disable 的值设置成 no,master_command 后的值修改成用户编程的可执行程序名(不需要带程序路径);

   3.3、将 acl/dist/master/sh/ 目录下的脚本程序拷贝至安装目录的 sh 目录(如:/opt/acl/sh)下,同时将其中的 {instal_path} 修改成安装目录,并给这些脚本增加可执行权限(可用 chmod +x 完成)。

 

四、快速安装

      为了简便,acl 提供了一个简洁的方法,在 acl 的代码根目录下运行 make all; make install,则会将 acl_master 服务器主进程拷贝至 acl/dist/master/libexec/ 的 linux32/linux64 目录下,用户把自己的程序(如 acl/samples/master/ioctl_echo3/ioctl_echo3 程序)也拷贝至 acl/dist/master/libexec/linux64/ 下(如果您的系统是 linux32 位系统则需要拷贝到 acl/dist/master/libexec/linux32 目录下),同时把 acl/master/conf/service/samples/ioctl_echo.cf 配置文件拷贝到 acl/master/conf/service/ 目录下并改成用户自己的配置文件名(如 mytest.cf),打开此配置文件后将 master_disable 的值由 yes 改为 no(表示允许启动该配置文件控制的服务子进程),把其中 master_command 后的值改为用户自己的程序名(如 ioctl_echo3)。

      现在就可以安装服务器模块了,进入 acl/dist/master 目录,运行 :./setup.sh 安装路径,如:

      ./setup.sh  /opt/acl,则得到如下安装结果:

      /opt/acl/libexec: 该目录存储服务器程序(acl_master 程序也存放在该目录下);

      /opt/acl/conf:该目录存放 acl_master 程序配置文件 main.cf;

      /opt/acl/conf/service:该目录存放服务子进程的程序配置文件,该路径由 main.cf 文件指定;

      /opt/acl/var/log:该目录存放日志文件;

      /opt/acl/var/pid:该目录存放进程号文件;

      /opt/acl/sh:该目录存放控制脚本程序。

      安装完毕后,用户可以运行启动 acl_master 的启动脚本:/opt/acl/sh/start.sh,然后手工 telnet 127.0.0.1 5001 (该端口由前面的示例配置文件指定),则一个简单的回显示服务器程序就 OK 了;如果不能返回正确结果,用户可以到安装目录(本例子中的 /opt/acl/var/log/)下查看 acl_master 主进程的日志文件 acl_master 查看里面记录的错误信息。

 

五、参考

     acl 库下载:https://sourceforge.net/projects/acl/

     svn: svn://svn.code.sf.net/p/acl/code/

     github 地址:https://github.com/acl-dev/acl

     使用 acl 生成向导快速创建服务器程序:http://zsxxsz.iteye.com/blog/1851701

     QQ 群:242722074

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值