文章列表
section3--hyperscan的示例程序及其编译
# 单模 #include<errno.h> // 用于生成错误代码#include<limits.h>// 用于确定在本机整数所占字节数#include<stdio.h>#include<stdlib.h>#include<sys/time.h>#include<string.h>#include<hs.h>// 包含 hyperscan 库long long now() { struct timeval time;...
more...section2--hyperscan的对应接口
# 调用方式 #include<hs.h> # api 的内容 参考:http://intel.github.io/hyperscan/dev-reference/api_files.html#file-hs-h # hs.h 包含 hs_compile.h 和 hs_runtime.h # hs_common.h hyperscan 的通用定义,供上述两个头文件调用 hyperscan 的 API 返回值宏定义...
more...section1--hyperscan简介和编译
# hyperscan 简介 hyperscan 是英特尔推出的一款正则表达式引擎,以自动机理论为基础,编译内核实现是 c++, 运行期开发使用 c 语言,支持跨平台开发. # 特点 高性能 相对比经典正则表达式匹配库 pcre, 其性能最高有着数百倍的提升. 支持多模 相对比 pcre 需要单独对每一条正则规则进行编译,hyperscan 支持一条编译接口实现多模式匹配 支持流式匹配 实际网络应用场景中多是流数据,而 hyperscan 对于这种匹配模式的支持无疑是顺应需求. 大规模匹配 可以同时支持上万条规则的匹配 # 原理 hyperscan...
more...Pfring高性能原理
# 概述 pf_ring 是一种新型网络套接字,用于高速收发包。 网络套接字 (network socket) 是程序通过网络进行通信的端点,而在类 UNIX 系统中,端点即是文件,套接字是一种使用标准 UNIX 文件描述符与其他计算机上的程序通信的方法,对于程序员来说,套接字的外观和行为非常类似于低级文件描述符。这是因为 read()和 write()等命令处理套接字的方式与处理文件和管道的方式相同。 pf_ring...
more...kafka附录
# 摘自官网,配置项相关 # Global configuration properties Property C/P Range Default Description builtin.features * gzip, snappy, ssl, sasl, regex, lz4 Indicates the builtin features for this build of librdkafka. An application can either query this value or attempt to set it with its list of required...
more...librdkafkacpp接口使用示例
参考:https://docs.confluent.io/2.0.0/clients/librdkafka/ librdkafkacpp 是一个 kafka 的 c++ 库,使用对象的创建使用工厂模式,自定义的逻辑处理一般使用回调函数。 libkafkacpp 提供的接口基本覆盖了 kafka 原生提供的功能,但也比较琐碎,可以进行进一步封装。下面是对上一章的示例的详细解读。 # 生产者 首先原生生产者是 RdKafka::Producer, 其需要的其他变量有: 目标 broker (s) 话题对象 回调函数 (可选) 写入的目标...
more...section.6 shell脚本
# shell 脚本 shell 脚本之于 Linux,就类似于批处理文件 (.bat) 之于 windows,都是可以 one touch 的情况下执行复数条命令,可以省去重复工作时每次都要输入又臭又长的命令的苦恼,并且其语法和 c 有不少共通之处,拥有基本的数组、循环、条件判断与转移等基本语法功能,可以直接用于编写程序。 shell 脚本有着以下的几个注意事项: 命令自上而下自左向右执行命令参数之间以空格分开,多个空格会被忽略读取到 Enter,就开始试图执行命令注释符号为 #一行命令内容过多可以用 \ 收尾一行,然后回车,来换行继续写脚本以 sh 方式执行需要 r 权限,以./...
more...