编译使用Acl协程库 一、概述在《使用 acl 协程编写高并发网络服务》和《使用协程方式编写高并发的 WEB 服务》两篇文章中介绍了如何使用 acl 的协程功能编写高并发服务器程序,本文主要介绍如何编译使用 acl 的网络协程库。 二、 acl 协程库的依赖关系目前 acl 协程主要分为 C 库(lib_fiber.a,在 acl/lib_fiber/c 目录下)和 C++库(libfiber_cp 2019-03-23 协程编程 #协程编程
c++对象序列化编程实例 编辑 在《使用 acl 库针对 C++ 对象进行序列化及反序列编程》中介绍了 acl 库中针对 C/C++ 的 struct 对象进行序列化和反序列化的功能,并且给出了一个简单的例子。本文将介绍一些较为复杂的例子。 一、示例一:支持多继承的例子先定义 struct.stub 文件: 123456789101112131415161718192021#pragma once#include &l 2016-11-14 对象序列化
使用 acl 库针对 C++ 对象进行序列化及反序列编程 在开发网络应用程序时,各个模块之间的数据通信可谓是家常便饭,为了应对这些数据通信时数据交换的要求,程序员发明了各种数据格式:采用二进制数据结构(早期 C 程序员)、采用 XML、采用SOAP(坑人的设计)、采用 URL 编码、采用JSON格式等。客户端与服务端交互时采用这些数据格式进行数据交换时,必然要经历数据编码及数据解码的繁琐过程。早期的二进制数据结构格式对于 C 程序员而是比较简单的,在解码 2016-10-16 对象序列化
使用协程方式编写高并发的WEB服务 在《使用 acl 协程编写高并发网络服务》中介绍了一个使用 acl 协程库编写高并发网络服务的应用示例,本节将展示一个稍微复杂些且更具实际意义的例子:基于协程的 WEB 服务器程序。下面首先展示这个 WEB 服务器程序: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 2016-07-06 协程编程 #协程编程
使用 redis_builder 管理 redis 集群 在 <一个 C++ redis 集群管理工具> 中主要讲述了如何使用 redis_builder 工具创建 redis 集群的过程,除此之外,该工具还具有更为强大的 redis 客户端管理功能(相对于官方提供的 redis-cli功能要强大的多)。本文主要讲解使用 redis_builder 以交互方式管理 redis 集群的过程。 一、启动 redis_builder 的交互过程只要 2016-04-23 redis使用
使用 acl 内存池模块管理动态对象 C/C++ 最容易出问题的地方是内存管理,容易造成内存泄露和内存越界,这一直是 C/C++ 程序员比较头疼的事情,但 C/C++ 最大的优势也是内存管理,可以让程序员直接管理内存,从而使程序运行更为高效。acl 库中的内存池管理器 dbuf_guard 在管理内存的效率上比系统级内存管理方式(malloc/free, new/delete)更为高效 2015-11-15 内存管理
一个 C++ redis 集群管理工具 集群版 redis3.0 发布以来,官方仅提供了一个使用 Ruby 写的集群管理工具,在创建 redis 集群时需要使用该工具。因为 Ruby 中的一些包依赖问题,导致一些生手在建立 redis 集群时吃尽了苦头。于是 acl 库作者基于 acl 中的 redis 模块库,用 C++ 语言写了一个 redis 集群管理工具: redis_builder,没有过多的包依赖,可以方便 redis 使用 2015-04-20 redis使用
使用 acl 库编写高效的 C++ redis 客户端应用 一、概述(可以直接略过此段)redis 最近做为 nosql 数据服务应用越来越广泛,其相对于 memcached 的最大优点是提供了更加丰富的数据结构,所以应用场景就更为广泛。redis 的出现可谓是广大网络应用开发者的福音,同时有大量的开源人员贡献了客户端代码,象针对 java 语言的 jedis,php 语言的 phpredis/predis 等,这些语言的 redis 库既丰富又 2015-02-10 redis使用
使用 acl 服务器框架编写负载均衡的应用服务 acl 服务器框架的几种服务器模型(进程模型,多线程模型,非阻塞模型,协程模型,触发器模型,UDP通信模型)中,使用比较多的是多线程模型、协程模块及非阻塞模型,这三种模型可以配置成启动多个进程实例(即成为:多进程多线程、多进程多协程及多进程非阻塞),但在实际应用中因为系统 TCP 连接分配的不均匀性,会导致每个进程实例的 TCP 连接数极不均匀甚至相差很大的问题(便出现了有的进程“撑死”,有的进程 2014-09-20 服务编程
使用 acl 库编写数据库应用程序 acl 的 C++ 版本库(lib_acl_cpp.a)的 db 模块主要与数据库编程相关,通过这些模块库,开发者可以快速地写出支持数据库连接池的数据库应用程序,目前该 db 模块支持 mysql、sqlite 数据库。本文将以 mysql 应用为例讲述如何使用这些 API 接口编程数据库应用。 在 lib_acl_cpp/include/acl_cpp/db 目录下 2014-09-03 数据库编程