thrift
swartz_lubel
这个作者很懒,什么都没留下…
展开
-
编译并使用boost库(win7+boost1.60+vs2013)
下载boost库从http://www.boost.org上下载到目前最新的boost库,快速传送门:boost_1_60_0.zip 得到源代码之后,使用vs2013的cl.exe编译进入到源代码目录中建立编译工具bjam.exe----需要执行bootstrap.bat转载 2017-08-07 22:06:44 · 773 阅读 · 0 评论 -
thrift客户端调用不支持多线程,非线程安全
Thrift个人觉得还是挺不错的一个rpc工具,相对而言比较容易上手。其实断断续续接触thrift也有一年半了,没想到这次还是掉坑里了。由于之前大多是调用方情形,接触多线程下的thrift不多,也就是这不熟悉,导致了我一天的功夫全砸在了一个很低级的错误上面。惨案背景:小文件存储系统基本功能开发完毕。控制器、系统对外接口、存储节点三大模块通过Thrift来进行跨机器远程通信。转载 2018-02-02 10:05:52 · 711 阅读 · 0 评论 -
thrift使用小记
Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCam转载 2018-02-03 10:27:32 · 337 阅读 · 0 评论 -
Thrift 异步模式
我们广泛使用thrift作为我们内部接口调用的RPC框架,而且基本上都是使用多线程请求等待应答的同步模式 。但是在一些情况下(例如大数据量同步),如果可以使用异步模式,可以优化程序结构和提高模块性能。thrift 有提供一套异步模式模式供我们使用,我们跟往常一样来编写一个thrift 协议文件。namespace cpp exampleservice Twitter { s转载 2018-02-02 10:29:15 · 3534 阅读 · 0 评论 -
拜占庭将军问题深入探讨
了解过比特币和区块链的人,多少都听说过拜占庭将军问题,或听说过比特币(或区块链)的一个重要成就正是解决了拜占庭将军问题。但真正明白这个问题的人并不多,甚至知道这个问题实质的人都很罕见。本文是一篇技术科普,将重点提供了拜占庭将军问题本身对本质及经典算法的解析,并探讨与之相关的一些问题。笔者参考了不少文献,夹杂了大量私货,但并没有提出解决该问题的新算法,这也不是本文的目的。 Part1转载 2018-01-29 15:16:28 · 2919 阅读 · 0 评论 -
thrift oneway的问题
今天同事试验oneway的时候,发现client发送的消息数目和server接收的不一致。自己也做了下试验。发现也是不一致。数据结构定义如下:book.thriftnamespace cpp codelabstruct Book {1: i32 book_id2: string name}server 端 hello.thrift 定义如下:include "book.thrift"...转载 2018-02-11 14:43:22 · 746 阅读 · 0 评论 -
Thrift在Windows及Linux平台下的安装和使用示例
thrift介绍Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的RPC(远程服务调用)框架。本文主要目的是分别介绍在Windows及Linux平台下的Thrift安装步骤,以及实现一个简单的demo演示Thrift的使用方法。更多Thrift原理留在以后再行介绍。thrift安装源码下载:thrift官网,或者thrift-gi转载 2018-01-30 15:04:47 · 284 阅读 · 0 评论 -
TNonblockingServer 连接管理
很久就想总结一下Thrift的Cpp lib库的学习情况,但是一直没有狠下心来去写。不是没有时间,就是恐怕理解不透彻。一晃几个月过去了,很多东西已经慢慢遗忘。今天,下定决心重新拾起来,边看边总结。这个故事,就从最有意思的Server端lib开始。这里的Server选用TNonBlockingServer,和他搭配的Transport选用TFrameTransport。这一节主要讲述该类包含的几个辅转载 2018-02-01 17:04:18 · 416 阅读 · 0 评论 -
VS2013编译64位boost流程及若干问题
为了编译CGAL库,必须要先编译boost,在编译64位库时遇到了一些问题,主要解决办法是:1. 选择VS2013安装目录下的“x64兼容命令提示”命令行对话框;2. 切换到boost代码目录,例如 CD D:\boost_1_56_0\;3. 输入:bootstrap.bat 命令,源代码文件夹中会新增了2个文件b2.exe和 bjam.exe;4. 输入命令:转载 2018-01-30 20:22:50 · 429 阅读 · 0 评论 -
.h 与 .hpp 文件
hpp,顾名思义等于.h加上.cpp,在boost、Xerces等开源库中频繁出现,偶在机缘巧合之下,学得一招半式,遂记录如下,以供参考学习。 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再 将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独转载 2018-01-30 22:14:57 · 159 阅读 · 0 评论 -
一个内存池的实现
mutex.h#ifndef __MUTEX_H_#define __MUTEX_H_#include "swartz_mutex.h"class CMutex{public: inline CMutex() : m_mutex(0) { swartz_mutex_create(&m_mutex, SWARTZ_MUTEX_ATTR_RECURSIVE); } ~C原创 2018-01-31 10:31:47 · 201 阅读 · 0 评论 -
apache apr介绍
APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期 的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。随着Apache的进一步开 发,Apache组织决定将这些通用的函数独转载 2018-01-31 12:37:23 · 834 阅读 · 0 评论 -
不定长内存池之apr_pool
内存池可有效降低动态申请内存的次数,减少与内核态的交互,提升系统性能,减少内存碎片,增加内存空间使用率,避免内存泄漏的可能性,这么多的优点,没有理由不在系统中使用该技术。内存池分类:1、 不定长内存池。典型的实现有apr_pool、obstack。优点是不需要为不同的数据类型创建不同的内存池,缺点是造成分配出的内存不能回收到池中。这是由于这种方案以session为转载 2018-01-31 12:49:02 · 497 阅读 · 0 评论 -
集群、分布式、负载均衡区别与联系
源文章:http://llyzq.iteye.com/blog/1133616[技术架构]集群、分布式、负载均衡区别与联系(转)1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群) 集群是一个统称,他分为好几种,如高性能科学群集、负载均衡群集、高可用性群集等。 科学群集 、高性能集群(High performance转载 2018-02-01 13:46:05 · 234 阅读 · 0 评论 -
Thrift 编译链接的时候出问题
本人是用vs2013 进行编译的 ,thrift版本是10 ,其实配置过程比较简单 加一下boost 和libevent openssl 库 然后成功出包,本以为就这样简单的成功了 ,但是编译的时候报错了 ,下面说一下解决的办法: 其实就是本身的vs工程少了两个类文件 TConnectedClient 和TServerFramework !所以你在连接的时候回提示符号找不到原创 2018-02-01 15:41:21 · 262 阅读 · 0 评论 -
thrift中TNonblockingServer的简单用法
最近在项目中需要把客户端的一些信息发送到服务器上,听起来是个很简单的需求,但是实际考虑下,觉得如果自己手工实现,工作量也不小,而且尽是些繁琐且无聊的事情,遂考虑用现成的库来实现。对比了protocol buffer与thrift后,本着偷懒到底的原则,选择了thrift,因为thrift本身提供了RPC框架,而protocol buffer仅是个序列化的库而已。 首先是编译thrift转载 2018-02-01 15:43:12 · 941 阅读 · 0 评论