自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(217)
  • 资源 (3)
  • 收藏
  • 关注

原创 Acl网络协程框架编程指南

Acl 网络协程框架编程指南摘要本文主要讲述Acl网络协程框架的使用,从协程的应用场景出发,以一个简单的协程示例开始,然后逐步深入到Acl网络协程的各个使用场景及使用细节,以及需要避免的“坑”,希望能给大家带来实践上的帮助。一、概述讲到协程,大家必然会提到 Go 语言,毕竟是 Go 语言把协程的概念及使用实践普及的;但协程并不是一个新概念,我印象中在九十年代就出现了,当时一位同事还说微软推...

2019-04-07 10:12:52 4550 2

原创 使用SSL进行网络加密传输

一、概述在 Acl 的网络通信模块中,为了支持安全网络传输,引入了第三方 SSL 库,当前支持 Polarssl 及其升级版 MbedTLS,Acl 库中通过抽象与封装,大大简化了 SSL 的使用过程(现在开源的 SSL 库使用确实太复杂了),以下是在 Acl 库中使用 SSL 的特点:为了不给不使用 SSL 功能的用户造成编译上的障碍,Acl 库采用动态加载 SSL 动态库方式,这样在连接...

2020-01-15 15:25:45 5362 2

原创 网络协程编程

一、背景为什么需要网络协程?1、协程/纤程并不是一个新概念2、大并发、高性能对于服务端的高要求3、移动设备的快速增长加大了服务端大并发压力4、Go 语言的兴起将协程带到了一个新的高度支持协程的编程语言:1、Go 语言,非常容易支持大并发、高性能2、Python 语言3、Erlang 语言4、Lua 语言。。。。。。为什么要设计一套 C/C++ 网络协程库?1、学习一...

2019-03-23 11:37:30 1560

原创 acl库使用FAQ

一、基础问题1、acl 库是啥、主要包含哪些功能?acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、UDP方式、协程方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库还提供了常见应用的客户端通信库...

2019-03-23 11:37:07 1445

原创 使用 acl 库针对 C++ 对象进行序列化及反序列编程

在开发网络应用程序时,各个模块之间的数据通信可谓是家常便饭,为了应对这些数据通信时数据交换的要求,程序员发明了各种数据格式:采用二进制数据结构(早期 C 程序员)、采用 XML、采用SOAP(坑人的设计)、采用 URL 编码、采用JSON格式等。客户端与服务端交互时采用这些数据格式进行数据交换时,必然要经历数据编码及数据解码的繁琐过程。早期的二进制数据结构格式对于 C 程序员而是比较...

2019-03-23 11:36:40 894

原创 编译使用 acl 协程库

在《使用 acl 协程编写高并发网络服务》和《使用协程方式编写高并发的 WEB 服务》两篇文章中介绍了如何使用 acl 的协程功能编写高并发服务器程序,本文主要介绍如何编译使用 acl 的网络协程库。 一、 acl 协程库的依赖关系 目前 acl 协程主要分为 C 库(lib_fiber.a,在 acl/lib_fiber/c 目录下)和 C++库(libf...

2019-03-23 11:35:56 704

原创 使用 acl 库编写负载均衡服务的配置指南

在文章《使用 acl 服务器框架编写负载均衡的应用服务》中介绍了 acl TCP 连接分配器的作用及原理,本节主要介绍 TCP 连接分配器的配置方法,及使用 acl 的服务器模板创建的应用服务子进程的配置方法(目前支持该功能的服务器模板有:线程池服务模板、协程服务模板以及非阻塞服务模板)。 一、TCP连接分配器的配置要点 TCP 连接分配器即 master_di...

2019-03-23 11:35:32 386

原创 c++对象序列化编程实例

在《使用 acl 库针对 C++ 对象进行序列化及反序列编程》中介绍了 acl 库中针对 C/C++ 的 struct 对象进行序列化和反序列化的功能,并且给出了一个简单的例子。本文将介绍一些较为复杂的例子。 一、示例一:支持多继承的例子 先定义 struct.stub 文件:#pragma once#include <string>...

2019-03-23 11:34:52 895

原创 acl协程中的同步功能

”协程同步“功能。在 acl 协程中,提供了两种应用场景下的同步机制:单机线程内协程之间的同步以及可以跨线程间的协程同步功能。    因为 acl 协程的调度器是单线程的(如果想用多核,可以启动多个线程,每个线程独立进行调度),所以如果你的应用场景仅需线程内不同协程间的同步,则只需使用 fiber_lock/fiber_sem 即可,其中 fiber_lock 为协程同步锁,fiber_sem 为协程信号量,其实现原理本质上是协程执行上下文的切换,所以比较容易实现;另外,acl 协程还提供应用场景更加复

2019-03-10 20:55:25 505

编译使用 acl 协程库

2016-12-24 21:56:12 585

使用 acl 库编写负载均衡服务的配置指南

及使用 acl 的服务器模板创建的应用服务子进程的配置方法(目前支持该功能的服务器模板有:线程池服务模板、协程服务模板以及非阻塞服务模板)。     一、TCP连接分配器的配置要点     TCP 连接分配器即 master_dispatch 程序,该程序也是一个服务进程,负责接收外部客户端的TCP连接,同时将该连接通过 UNIX 域套接口传递给后面的应用服务进程,该程序在 acl 库的 acl/app/master_dispatch/server 目录下。      master_dispat

2016-11-28 22:18:35 244

c++对象序列化编程实例

2016-11-14 22:39:35 268

使用 acl 库针对 C++ 对象进行序列化及反序列编程

2016-10-16 20:27:44 233

acl库使用FAQ

时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、UDP方式、协程方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库还提供了常见应用的客户端通信库(如:HTTP、SMTP、ICMP、redis、disque、memcache、beanstalk、handler socket),常见流式编解码库:XML/JSON/MIME/BASE64/UUCODE/QPCODE/RFC2047 等。2、acl 库支持哪些平台?目前主要支持 Linux

2016-08-21 11:30:30 434

网络协程编程

2016-07-18 23:38:38 370

使用协程方式编写高并发的 WEB 服务

意义的例子:基于协程的 WEB 服务器程序。下面首先展示这个 WEB 服务器程序:#include "lib_acl.h" // acl 基础库头文件#include "fiber/lib_fiber.h" // acl 协程库头文件#include "acl_cpp/lib_acl.hpp // acl C++ 封装库头文件class http_servlet : public acl::HttpServlet{public

2016-07-06 23:01:09 515

使用 acl 协程编写高并发网络服务

&gt;#include &lt;stdlib.h&gt;#include &lt;string.h&gt;#include "fiber/lib_fiber.h"static int __rw_timeout = 0;static void echo_client(ACL_FIBER *fiber acl_unused, void *ctx){ ACL_VSTREAM *cstream = (ACL_VSTRE

2016-07-06 21:49:14 410

原创 基于协程方式编写高并发、高性能的服务

于是出现了很多异步IO编程框架,诸如 JAVA 中的 Netty,C++ 中的 ASIO,C 中的 libevent,以及 acl 库中的 aio 模块。这些库底层基本都是基于操作系统所提供的 IO 事件接口(如:Windows 下的 iocp,Linux 下的 epoll,Bsd 下的 kqueue,Solaris 下的 devpoll,以及 UNIX 平台中的 poll,select),对 IO 过程进行二次封装,然后通过回调的方式调用使用者的函数过程。此类异步 IO 过程的典型应用如:nginx,re

2016-07-05 23:18:59 821

使用 redis_builder 管理 redis 集群

客户端管理功能(相对于官方提供的 redis-cli功能要强大的多)。本文主要讲解使用 redis_builder 以交互方式管理 redis 集群的过程。一、启动 redis_builder  的交互过程      只要运行:./redis_builder -s redis_ip:redis_port,便进入 redis_builder 工具的命令行交互过程,其中 redis_ip 和 redis_port 为 redis 集群中的任一个节点的 IP 及端口号。启动成功后,显示界面如下: 

2016-04-23 19:59:42 594

原创 集群 Redis 使用实践

2016-02-12 21:49:39 263

acl3.1.4 跨平台网络通信与服务器编程框架发布了

cl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类)。本次 acl 升级的主要内容有:完善并丰富的 dbuf(内存池)模块,并在 acl 的多个模块中使用,增加了撰写邮件模块类,增加了基于内存映射的 xml 解析器;修改一些 BUG

2015-12-20 18:01:19 224

使用 acl 内存池模块管理动态对象

2015-11-15 00:27:24 255

跨平台网络通信与服务器编程框架 acl 3.1.3 版本发布

cl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类)。本次 acl 升级的主要内容有:修复了 lib_acl_cpp 库中 redis 模块中几处 BUG,增加了对 redis geo 地理位置操作的支持;增加数据库连接池集群管理功能

2015-08-27 09:13:13 142

原创 acl 中高效会话内存池的设计

的设计可能在一类应用中是高效的,但在其它类的应用中却未必显得高效。区分应用场景,选择适合的内存管理模式是应用程序所必须要考虑的。       本文介绍了一种称之为“会话“内存池的设计方式。之所以称之“会话”内存池,言外之意该内存池的生命周期为某一次会话交互过程。该内存池管理的方式就是每次会话开始,内存池创建,该会话结束内存池销毁,在该次会话过程中的内存分配都由该”会话“内存池分配,并且在会话过程中不必释放内存,所有内存的释放都将在会话结束时通过销毁该“会话”内存池而统一被释放。该“会话”内存池具有以下特

2015-06-21 22:43:22 354

跨平台网络通信与服务器框架 acl-3.1.2 版本发布

cl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类);本次 acl 升级的主要内容有:修复了 acl redis 库中几处 BUG,增加了对 redis cluster 管理命令的支持;对 redis 客户端库提供了英文注释;提供了用

2015-05-10 19:33:44 144

一个 C++ redis 集群管理工具

致一些生手在建立 redis 集群时吃尽了苦头。于是 acl 库作者基于 acl 中的 redis 模块库,用 C++ 语言写了一个 redis 集群管理工具: redis_builder,没有过多的包依赖,可以方便 redis 使用者快速地建立 redis 集群,此外,该工具还可以进行一些集群的其它管理工作。    下面是 redis_builder 的一些功能:./redis_build -h usage: redis_builder.exe -h[help] -s redis_addr[ip:

2015-04-20 00:01:27 670

跨平台网络通信与服务器框架 acl.3.1.1 版本发布

cl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类);本次 acl 升级的主要内容有:acl redis 模块完全支持集群版 redis3.0。除此之外,还包含一些小的功能改进与完善,以及一些 BUG 的修复。acl 包括以下丰富的常

2015-03-29 21:36:42 128

原创 acl 服务器编程框架设计要点

2015-03-20 23:33:05 602

支持集群版 redis 的客户端例子

2015-03-07 23:03:13 487

原创 使用 acl 库编写高效的 C++ redis 客户端应用

现在 redis 应用越来越广泛,但好用的 C/C++ 客户端库并不多,官方提供的 hiredis 使用复杂度较高,容易出错,而且不支持连接池及连接重试机制,acl 网络通信库提供了丰富的 redis 功能开发库(C++),大大提高了 redis 应用的开发效率,降低了出错率,同时提供 redis 连接池及集群连接池管理机制。

2015-02-12 13:08:57 3394 4

使用 acl 库编写高效的 C++ redis 客户端应用

所以应用场景就更为广泛。redis 的出现可谓是广大网络应用开发者的福音,同时有大量的开源人员贡献了客户端代码,象针对 java 语言的 jedis,php 语言的 phpredis/predis 等,这些语言的 redis 库既丰富又好用,而对 C/C++ 程序员似乎就没那么幸运了,官方提供了 C 版的 hiredis 作为客户端库,很多爱好者都是基于 hiredis 进行二次封装和开发形成了 C++ 客户端库,但这些库(包括官方的 hiredis)大都使用麻烦,给使用者造成了许多出错的机会。一直想开发一

2015-02-10 01:03:33 842

acl跨平台网络通信框架3.1.0版本发布

cl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类);本次 acl 升级的主要内容有:1、整个工程可以使用 clang/clang++ 编译通过;2、在 lib_acl_cpp 库中提供了 redis 客户端命令协议的完整实现,共 1

2015-02-09 09:19:51 87

原创 跨平台网络通信与服务器框架(acl) 新版本发布

acl(one advanced C/C++ library) 是一个跨平台的网络通信与服务器开发开源框架,至今已经被很多大公司所使用,使开发者在享受C/C++的高性能的同时,可以使用 acl 框架提高开发效率与系统的稳定性。该框架不仅提供了丰富的服务器模式(多进程模式、多线程模式、非阻塞模式、UDP模式、触发器模式),同时还提供了丰富 的常见应用协议库(http/ping/smtp/memcache/redis/beanstalk/handler socket, etc) 以及丰富的编码库(base64/

2015-02-09 09:17:04 925

acl 跨平台网络通信服务器编程框架 3.0.22 版本发布

acl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类);本次 acl 升级的主要内容有:1、SSL 同时支持阻塞、非阻塞模式,2、线程池服务器模板更好地支持在线更新,3、TCP 派发器提供了管理接口用于状态汇报,4、工程文件整理。 a

2014-12-15 13:31:47 94

acl 跨平台网络通信服务器编程框架 3.0.22 版本发布

acl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类);本次 acl 升级的主要内容有:1、SSL 同时支持阻塞、非阻塞模式,2、线程池服务器模板更好地支持在线更新,3、TCP 派发器提供了管理接口用于状态汇报,4、工程文件整理。 a

2014-12-15 13:31:09 104

跨平台网络通信与服务器框架 acl 服务器框架 3.0.21 版本发布

library 的简称,主要包括网络通信库以及服务器框架库等功能,支持 Linux/Windows/Solaris/FreeBsd/MacOS 平台;整个 acl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类);本次 acl 升级的主

2014-10-30 21:19:34 105

使用 acl 服务器框架编写负载均衡的应用服务

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

2014-09-20 22:33:12 278

原创 [置顶] acl 框架库简介

一、概述    acl 工程是一个跨平台的通用网络通信库及服务器编程框架,同时提供更多的其它有价值功能。通过该库,用户可以非常容易地编写支持多种模式的服务器程序、WEB 应用程序以及数据库应用程序。此外,该库还提供了 XML/JSON/MIME 编码及解码功能,这些编码解码库均支持流式解析模式,从而使之更适应不同的网络通讯方式。    本工程主要包含 5 个库及大量示例。5 个库的说明如下

2014-09-09 09:56:40 975

原创 [置顶] acl_cpp 的 rpc 相关类整合阻塞及非阻塞过程

一、概述      非阻塞网络编程无疑成了高并发、高性能编程的代名词,但现实应用编程中并不是每种应用都需要采用非阻塞编程模式,因为这将大大增加编程的复杂性、开发周期以及出错率,所以我们写的绝大部分网络程序程序都是阻塞的,一般是一个进程一个网络连接或一个线程一个网络连接。即然非阻塞模式可以实现高并发网络连接,阻塞模式可以实现复杂的业务逻辑,那是否有办法将二者结合起来呢?答案是肯定的,其中在 ac

2014-09-09 09:56:35 754

原创 [置顶] 使用 acl_cpp 的 HttpServlet 类及 google 的 ctemplate 库编写 WEB 应用

文章《用C++实现类似于JAVA HttpServlet 的编程接口》中讲述了如何使用 acl_cpp 库之 HTTP 模块编写象 Java Servlet 一样的 WEB 应用。其中也讲到了 acl_cpp HTTP 模块中有关 Http Session、Cookie 的使用方法。而作为 WEB 编程中非常重要的网页模板引擎在 acl_cpp 并未实现。本文将结合谷歌的 ctemplate 库,

2014-09-09 09:56:29 764

openssl0.98h win32 版本

这是openssl0.98h在WIN32平台下的编译版本,其中还包含源码,主要觉得有人在CSDN提供下载时要分过高,所以不愤便上传了这个。

2009-08-17

acl project 2008.9

进程池,线程池,异步通信,HTTP协议,服务器框架,可以非常方便快捷地构建你自己的服务器程序

2008-09-06

acl project

通用跨平台函数库,网络通讯、服务器框架、进程池/线程池、通用算法、HTTP协议等

2008-05-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除