当前位置:首页 > CN2资讯 > 正文内容

服务器acrivemq配置 acl服务器

3天前CN2资讯


      acl 服务器框架的几种服务器模型(进程模型,多线程模型,非阻塞模型,协程模型,触发器模型,UDP通信模型)中,使用比较多的是多线程模型、协程模块及非阻塞模型,这三种模型可以配置成启动多个进程实例(即成为:多进程多线程、多进程多协程及多进程非阻塞),但在实际应用中因为系统 TCP 连接分配的不均匀性,会导致每个进程实例的 TCP 连接数极不均匀甚至相差很大的问题(便出现了有的进程“撑死”,有的进程“饿死“的现象),acl 服务器框架提供了一个 TCP 连接分配器,该分配器负责接收外来 TCP 连接,然后将该 TCP 连接的文件句柄通过 UNIX 域套接字”平均传递给“后端的每一个子进程,从而保证了应用服务器进程池中的每个进程实例都能获得相等数量的 TCP 连接,从而达到负载均衡的目的。


 

      如上图所示,整个网络连接处理过程如下:

      一、在 acl_master 服务器框架下启动两个服务:TCP连接分配器和应用服务进程

      二、TCP 连接分配器监听两个地址:一个是网络地址(如:192.168.188.1:80)和一个本机的 UNIX 域套接字(如:/opt/acl/var/private/dispatch.sock)

             :acl 服务器框架支持同时监听多个网络地址或 UNIX 域套口地址,参见:使用 acl 服务器框架编写监听多个地址的服务器程序

      三、应用服务的每个进程通过该 UNIX 域套接口连接 TCP 连接分配器:

        1、通过该连接向TCP连接分配器报告自己当前的 TCP 连接数

        2、在该UNIX套接口接收TCP连接分配器发送的客户端TCP连接的套接字句柄

      四、客户端通过网络连接 TCP 连接分配器监听的网络地址

      五、TCP 连接分配器从后端进程池中选取一个连接数最少的进程,并通过与该进程的 UNIX 套接字将客户端的 TCP 连接句柄传递给该进程

      六、后端获得 TCP 连接分配器传递来的 TCP 连接句柄,从而与前端客户端建立联系,开始处理客户端的请求。

 

      通过以上处理流程,就可以保证客户端连接可以均匀地分配给后端服务进程池中的每一个进程实例,这样,每个进程实例占用的系统资源(如:CPU、内存、IO 等)就相对比较均匀。

      在 UNIX/LINUX 平台下,通过 UNIX 域套接字传递描述字过程是由内核完成的,应用层只需负责相关的系统 API 调用即可,如何使用系统 API 传递描述字可以参考 acl 库中的 lib_acl/src/stdlib/sys/unix/acl_transfer_fd.c 源文件。

      另外,上面所提的 TCP 连接分配器是使用 acl 服务器框架中的非阻塞服务模型编写的一个服务器程序,具体实现在 app/master_dispatch/server 目录下;应用服务器程序可以使用 acl 服务器框架中的线程池模型或非阻塞模型编写。

      在部署时,需要将 TCP 连接分配器(app/master_dispatch/server/master_dispatch) 及用户自己写的服务器程序拷贝到执行目录下,在应用自己的服务器程序中需要将配置文件中的域接口连接地址打开(对于线程池模型需要打开 ioctl_dispatch_addr 配置项,对于非阻塞模型需要打开 aio_dispatch_addr 配置项)

      参考:

      1、使用 acl 生成向导快速创建服务器程序

      2、使用 acl 服务器框架编写监听多个地址的服务器程序

      3、使用 acl 的生成向导快速创建一个C++ WEB 服务器

      4、acl 服务器模块的部署

 

    

 

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/20502.html

    分享给朋友:

    “服务器acrivemq配置 acl服务器” 的相关文章

    ICMP vs TCP:网络测试中的最佳协议选择

    当我们谈论网络协议时,ICMP(Internet Control Message Protocol)和TCP(Transmission Control Protocol)是两个重要的角色。它们虽然都在网络通信中扮演着关键的角色,却有着截然不同的功能和应用。理解这两种协议的定义及其特性,能够帮助我在构...

    主机类型与高性能配置详解,选择最适合你的主机方案

    主机的定义与分类 什么是主机? 当我们谈论“主机”这个词时,通常指的是计算机系统,特别是在网络环境中提供服务或资源的设备。我个人觉得主机不仅仅是实体的机器,而是指在网络中扮演着重要角色的一种技术资源。它可以执行各种任务,从存储数据到托管网站,再到运行应用程序,主机的功能几乎无所不包。可以想象,主机就...

    搬瓦工补货通知及高性价比套餐推荐

    搬瓦工的补货通知对许多用户来说非常重要,尤其是在需求不断增加的背景下。补货通知不仅帮助用户了解最新的套餐信息,还能在价格优惠时把握购买机会。对于我而言,时常关注这些通知意味着能以最低的价格获得高配置的套餐,这无疑是提升我网络体验的重要一步。 为了随时获取补货信息,搬瓦工提供了多种渠道供用户选择。大家...

    VPS流媒体解锁测试:确保顺畅访问全球流媒体内容

    在如今的互联网时代,流媒体已经成为我们日常生活中不可或缺的一部分。无论是观看热门电视剧,还是播放最新的音乐视频,流媒体服务的便捷性吸引了无数用户。然而,涉及不同地区提供的内容时,依然存在一些区域限制。这时,VPS(虚拟专用服务器)流媒体解锁技术的重要性便不言而喻。 VPS流媒体解锁是指通过虚拟专用服...

    VPS Pro - 理想的虚拟专用服务器解决方案

    什么是 VPS Pro VPS Pro 是一种先进的虚拟专用服务器解决方案,提供用户高度可定制的服务器环境。与传统的共享主机或物理服务器相比,VPS Pro 以虚拟化技术为基础,让每位用户享有像独立服务器一样的资源和灵活性。这种技术不仅提升了资源的利用率,还为用户提供了更高的控制权限。 在VPS P...

    VPS Speedtest:优化虚拟专用服务器性能的必备工具和策略

    在数字时代,VPS(虚拟专用服务器)已经成为许多企业和个人建站的首选方案。为了确保VPS的性能满足需求,VPS Speedtest便显得格外重要。简单来说,VPS Speedtest就是对虚拟专用服务器的网络速度、带宽和延迟进行测试的一种方式。通过这一过程,我们不仅能了解VPS的现有性能,还能在需要...