![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开源库
文章平均质量分 81
工程师WWW
R
展开
-
Python KafkaProducer and KafkaConsumer的开发模块
1.在python中往kakfa写数据和读取数据,使用的是python-kafka库2.消费者需持续写入数据,因groupid存在偏移量,才能看看到数据。3.安装库的命令为pip install python-kafka -i https://pypi.douban.com/simple4.其中返回的message为一个生成器,其中元素的type为<class 'kafka.co...转载 2018-07-26 14:36:29 · 19851 阅读 · 0 评论 -
Linux下Cppunit的简单运用
操作系统:软件版本:cppunit-1.12.0.tar.gz代码调试通过 一、 CppUnit的原理先简单介绍几个CppUnit的基本术语:1、Fixture:一个或一组测试用例的测试对象。可以是你要测试的对象或者函数。2、TestCase:测试用例。是对测试对象的某个功能或流程编写的测试代码。对一个Fixture,可能有多个测试用例。3、Te原创 2015-08-28 11:37:23 · 1801 阅读 · 0 评论 -
jsoncpp简单示例
1、 编译jsoncpp 从(http://jsoncpp.sourceforge.net/)下载源码包“jsoncpp-src-0.5.0.tar.gz”,解压后在其解压后目录中运行$ scons platform=linux-gcc 编译出来的库文件在其libs/ linux-gcc-4.4.2目录下,有libjson_linux-gcc-4.4.2_libmt.so和libj原创 2014-08-11 17:53:26 · 1507 阅读 · 0 评论 -
正则表达式30分钟入门教程
目录跳过目录本文目标 如何使用本教程 正则表达式到底是什么东西?入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用零宽断言 负向零宽断言注释 贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到 联系作者 网上的资源及本文参考文献更新纪录本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的原创 2012-06-15 00:12:23 · 1156 阅读 · 0 评论 -
Memcache基础教程
Memcache是什么Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。Memcache官方网站:http原创 2013-11-27 11:02:20 · 1358 阅读 · 0 评论 -
使用openssl的md5库
在linux机器上,有一个命令可以计算出文件的md5值,那就是md5sum,如果没有的话,就需要安装RPM包:coreutils。现在我们使用openssl的库也可以方便的计算出文件的md5值。主要用到的函数是int MD5_Init(MD5_CTX *c);int MD5_Update(MD5_CTX *c, const void *data, size_t len);i原创 2015-06-02 19:58:02 · 4098 阅读 · 0 评论 -
开源项目之---cgi ( cgicc )
CGI是: “公共网关接口”(Common Gateway Interface)的简称,是HTTP服务器与其它程序进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI是一段程序,它运行在Server上,提供同客户端 Html页面的接口。CGI的功能:通常情况下CGI程序被用来解释处理来自表单的输入信息,在服务器产生相应的处理,并将相应的信息反馈给浏览器。CGI程序使网原创 2015-03-30 17:02:34 · 6513 阅读 · 0 评论 -
ICE框架组件内部实现与特点
1,Ice::Application 此类中有一个main的方法,main的方法中调用了run()函数。ICE框架的服务配置结构:class ResTransferServer : public Ice::Application{public: virtual int run(int argc, char* argv[]) { Ic原创 2015-01-15 23:48:45 · 4002 阅读 · 1 评论 -
OAuth2.0指南
引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。下面是一张阐述该概念的图:OAuth2.0怎么通过应用共享数据的例子,用户访问web游戏应用,该游戏应用要求用户通过Facebook登录。用户登录到了Facebook,再重定向会游戏应用, 游戏应原创 2014-08-29 15:41:44 · 2357 阅读 · 0 评论 -
基于jwSMTP的C++发送Email的Demo
由于业务上存在发送报警邮件的需求,一直想找一个简单易用的发送Email的C++库。终于找到了,它就是jwSTMP(http://sourceforge.net/projects/jwsmtp/)。最新的jwSTMP版本(1.32.15)能够跨平台(BSD、Linux和Windows等)的支持以C++代码或者C++库的形式编码发送Email。它可以发送附件、支原创 2014-08-13 16:03:32 · 2177 阅读 · 0 评论 -
Libcurl简明使用指南
Libcurl为一个免费开源的,客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,跨平台,支持Windows,Unix,Linux等,线程安全,支持Ipv6。并且易于使用。http://curl.haxx.se/libcurl/从http://curl.haxx.se/libcurl/ 下载一个稳定的原创 2014-04-08 14:27:54 · 3055 阅读 · 0 评论 -
使用openssl库实现RSA、AES数据加密
openssl是可以很方便加密解密的库,可以使用它来对需要在网络中传输的数据加密。可以使用非对称加密:公钥加密,私钥解密。openssl提供了对RSA的支持,但RSA存在计算效率低的问题,所以一般的做法是使用对称密钥加密数据,然后再把这个只在当前有效的临时生成的对称密钥用非对称密钥的公钥加密之后传递给目标方,目标方使用约定好的非对称密钥中的私钥解开,得到数据加密的密钥,再进行数据解密,得到数据。对原创 2014-03-19 23:38:55 · 2438 阅读 · 0 评论 -
Openssl的安装
openssl简介openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。原创 2014-03-19 23:32:49 · 3795 阅读 · 0 评论 -
XML四种解析器原理及性能比较
1: DOM Document Object Model,是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。(所以其劣势就是基与大文件的加载速度很慢,因为它是需要全部加载后才操作的). 由于它是基于信息原创 2012-06-24 22:10:00 · 1651 阅读 · 1 评论 -
数据类型和Json格式
1.前几天,我才知道有一种简化的数据交换格式,叫做yaml。我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开。它说,从结构上看,所有的数据(data)最终都可以分解成三种类型:第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词。第二种类型是序列(sequence),也原创 2014-03-04 17:36:18 · 1221 阅读 · 0 评论 -
Jsoncpp的使用
C++要使用JSON来解析数据,一般采用jsoncpp. 网站:http://sourceforge.net/projects/jsoncpp/下载了之后,解压,然后打开\jsoncpp-src-0.5.0\jsoncpp-src-0.5.0\makefiles\vs71下的工程文件,进行编译链接就可以得到一个静态链接库json.lib要用jsoncpp只需要将这个原创 2014-03-05 10:10:26 · 1312 阅读 · 0 评论 -
memcached深度分析
Memcached深度分析Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。关于这个东西,相信很多人都用过,本文意在通过对memcached的实现及代码分析,获得对这个出色的开源软件更深入的了解,并可以根据我们的需要对其进行更进一步的优化。末了将通过对BSM_Memcache扩展的分析,原创 2014-02-25 13:55:49 · 1650 阅读 · 0 评论 -
CppUnit测试框架入门
测试驱动开发(TDD)是以测试作为开发过程的中心,它坚持,在编写实际代码之前,先写好基于产品代码的测试代码。开发过程的目标就是首先使测试能够通过,然后再优化设计结构。测试驱动开发式是极限编程的重要组成部分。XUnit,一个基于测试驱动开发的测试框架,它为我们在开发过程中使用测试驱动开发提供了一个方便的工具,使我们得以快速的进行单元测试。XUnit的成员有很多,如JUnit,PythonUnit等。原创 2015-08-27 17:04:03 · 3016 阅读 · 0 评论 -
FFmpeg常用基本命令
1.分离视频音频流ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流ffmpeg -i input_file -acodec copy -vn output_file_audio //分离音频流2.视频解复用ffmpeg –i test.mp4 –vcodec copy –an –f m4原创 2015-08-14 17:59:25 · 2155 阅读 · 0 评论 -
jsoncpp在linux编译
jsoncpp是一个c++封装的json包,跨平台支持windows、linux、unix等多系统,macOS据说也支持。在windows下面使用比较简单,直接往vc里面添加项目就可以了。linux下面编译需要使用到scons,scons又是一个牛叉的工具,功能和GNU make一样,又比make简单多了。scons是python工具,需要先安装好python。下载scon原创 2014-02-22 16:13:45 · 3193 阅读 · 1 评论 -
为何Redis要比Memcached好用
副标题: Redis是新兴的通用存储系统,而Memcached仍有其适用领域Memcached还是Redis? 在现代高性能Web应用中这一直是个争论不休的话题。 在基于关系型数据库的Web应用需要提高性能时,使用缓存是绝大多数架构师的第一选择,自然,Memcached和Redis通常是优先选择。共同特征都是 key-value 形式的内存数据库都是NoSQL家族的数据管理解决方案都基于同样的ke...原创 2018-04-26 17:59:34 · 1111 阅读 · 0 评论 -
Linux-HA 高可用开源方案 Keepalived VS Heartbeat 的选择
两款高可用开源方案:Keepalived和Heartbeat。两者都很流行,但差异还是很大的,现将试用过程中的感受以及相关知识点简单总结一下,供大家选择方案的时候参考。1)Keepalived使用更简单:从安装、配置、使用、维护等角度上对比,Keepalived都比Heartbeat要简单得多,尤其是Heartbeat2.1.4后拆分成3个子项目,安装、配置、使用都比较复杂,尤其是出问题的时候,都...原创 2018-05-01 18:19:27 · 587 阅读 · 0 评论 -
Nginx基于TCP的四层负载均衡介绍
Nginx Plus的商业授权版开始具有TCP负载均衡的功能。从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请。也就是说,Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议实现的负载均衡方法。HTTP负载均衡,也就是我们通常所有“七层负载均衡”,工作在第七层“应用层”。而TCP负载均衡,就是我们通常所说的“四层负载均衡”,工作在“网...原创 2018-05-01 17:29:42 · 926 阅读 · 0 评论 -
RabbitMQ负载均衡(3)——Keepalived+HAProxy实现高可用的负载均衡
试想下如果前面配置的HAProxy主机192.168.0.9突然宕机或者网卡失效,那么虽然RabbitMQ集群没有任何故障,但是对于外界的客户端来说所有的连接都会被断开,结果将是灾难性的。确保负载均衡服务的可靠性同样显得十分的重要。这里就引入Keepalived工具,它能够通过自身健康检查、资源接管功能做高可用(双机热备),实现故障转移。Keepalived采用VRRP(Virtual Route...原创 2018-05-01 16:29:59 · 468 阅读 · 0 评论 -
用Redis构建分布式锁-RedLock(真分布)
在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。 这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器的算法,我们把这个算法称为RedLock。实现在描述具体的算法之前,下面是已经实现了的项...原创 2018-03-08 15:37:27 · 1605 阅读 · 0 评论 -
为何Redis要比Memcached好用
GitHub版本地址: https://github.com/cncounter/translation/blob/master/tiemao_2014/Redis_beats_Memcached/Redis_beats_Memcached.md副标题: Redis是新兴的通用存储系统,而Memcached仍有其适用领域Memcached还是Redis? 在现代高性能Web应用中这一直是个争论不休...原创 2018-03-08 14:45:39 · 326 阅读 · 0 评论 -
RabbitMQ的应用场景以及基本原理介绍
1.背景RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现。2.应用场景2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是转载 2018-01-05 10:17:55 · 665 阅读 · 0 评论 -
ZooKeeper典型应用场景一览
ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。 结合小编以前的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。当然,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系列API接口(或原创 2017-11-20 14:23:21 · 1265 阅读 · 0 评论 -
[FFmpeg]ffmpeg各类参数说明与使用示例
1、ffmpeg 推送视频文件,音视频的编码格式只能为H264、AAC。ffmpeg -re -i "E:\片源\复仇者联盟720p.mov" -vcodec copy -acodec copy -f flv rtmp://192.168.11.75/live/test1 ffmpeg -re -i "E:\片源\复仇者联盟720p.mov" -vcodec copy -acodec原创 2017-05-08 11:32:06 · 19794 阅读 · 1 评论 -
C语言 JSON 解析库 - MJSON使用介绍
安装:解压出来,然后直接包含 json.h 就可以了。下面是几个官方给出的几个例子,由于直接拷贝过来编译没通过,做了一些修改,详见注释部分。【mjson例一】#include #include #include #include "json.h"int main (void){ char *text; json_t *root, *entry,原创 2016-12-14 15:44:24 · 3739 阅读 · 0 评论 -
如何用googletest写单元测试
googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows、linux、Mac等OS平台上。下面,我来说明如何使用最新的1.6版本gtest写自己的单元测试。本文包括以下几部分:1、获取并编译googletest(以下简称为gtest);2、如何编写单元测试用例;3、如何执行单元测试。4、google test内部是如何执行我们的单元测试用例的。原创 2016-09-23 13:23:23 · 4198 阅读 · 1 评论 -
libevent入门
花了两天的时间在libevent上,想总结下,就以写简单tutorial的方式吧,貌似没有一篇简单的说明,让人马上就能上手用的。首先给出官方文档吧: http://libevent.org ,首页有个Programming with Libevent,里面是一节一节的介绍libevent,但是感觉信息量太大了,而且还是英文的-。-(当然,如果想好好用libevent,看看还是很有必要的原创 2016-05-31 16:46:08 · 3066 阅读 · 0 评论 -
Memcached使用手册
memcached简介1 、 memcached 是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的 hash 表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。2 、它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。 3 、 Memcached 基于一个存储键 / 值对的 hashmap 。原创 2016-02-02 19:39:00 · 831 阅读 · 0 评论 -
Memcached常用命令及使用说明
Memcached常用命令及使用说明一、存储命令存储命令的格式:12<command name> <data block>参数说明如下:set/add/replace查找关键字客户机使用它存储关于键原创 2015-06-24 11:26:00 · 895 阅读 · 0 评论 -
Memcached配置参数初解
一、基本参数在我们第一次安装Memcached时,一般都是用过这个命令: memcached -m 512 -u root -d -l 127.0.0.1 -p 11211 我们先来解释这几个参数的含义吧。-m 指定缓存所使用的最大内存容量,单位是Megabytes,默认是64MB-u 只有以ro原创 2016-02-02 10:30:50 · 978 阅读 · 0 评论 -
Redis C客户端API
Redis安装步骤:1.redis server安装wget http://redis.googlecode.com/files/redis-2.4.6.tar.gz #下载文件tar xzf redis-2.4.6.tar.gzcd redis-2.4.6makecp src/redis-server src/redis-cli /usr/bin/ #方便在终端在任何原创 2014-08-15 18:27:50 · 1788 阅读 · 0 评论 -
How To Use Google Logging Library (glog)
(as of Fri Jan 25 2013) IntroductionGoogle glog is a library that implements application-level logging. This library provides logging APIs based on C++-style streams and various helper macros. You原创 2014-01-26 14:01:29 · 2607 阅读 · 0 评论 -
glog 入门教程
1、简介 glog 是google的开源日志系统,本质上是一个程序级记录日志信息的c++库,编程使用方式与c++的stream操作类似,例如:LOG(INFO) "Hello Glog"; 2、安装 下载连接:http://code.google.com/p/google-glog/ 安装:./configure && make && make inst原创 2013-10-29 17:55:38 · 3734 阅读 · 0 评论 -
lua的FFI库--alien
所谓FFI就是Foreign Function Interfaces。 最近的一个工作,是搞一个基于lua的开发中间件框架,希望通过lua来粘合其他厂商提供的开发库,最后统一开发接口。alien刚好能满足条件,而且体积也不大,兼容Windows和Unix系统。另外还有个C/Invoke,但是到2007年就没再更新版本了。先从http://luaforge.net/projec原创 2013-11-19 16:18:05 · 5633 阅读 · 0 评论 -
lua连接数据库之luasql ------ luasql连接mysql数据库 及 luasql源码编译
lua连接数据库不只luasql这个库,但目前更新最快的的貌似是这个luasql,他是开源的,支持的数据库功能如下:Connect to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL databases;Execute arbitrary SQL statements;Retrieve results in a row-by-row cur原创 2013-10-30 10:28:32 · 2818 阅读 · 0 评论