
brpc学习
文章平均质量分 88
祚儿疯
向阳而生
展开
-
初探brpc
今天开始对百度的这块开源项目进行学习,之前一直有听说,但是没有去尝试使用,下面就自己对brpc的学习心得进行一个总结。1、brpc的简介brpc又称为baidu-rpc,是百度开发一款“远过程调用”网络框架。目前该项目已在github上开源:https://github.com/brpc/brpc从开源的github上看,确实是很有水准的一款rpc,不仅是文档内容及其丰富,其中也提到了,br...原创 2018-11-15 21:08:23 · 3960 阅读 · 1 评论 -
华为云memcached的搭建
这几天有时间在整brpc,准备用brpc写一个简单的memcached的客户端,区别于之前使用的libmemcaced。所以先得搭建memcached,之前本来有搭建好的,但是服务器后面重装做其他的去了,所以想着就用云主机吧。蹭着华为云新手可以免费领取一个月的memcached,所以选择使用华为云,试着搭建看看。官网链接如下:https://support.huaweicloud.com/us...原创 2018-12-05 20:11:51 · 417 阅读 · 0 评论 -
brpc中同步、异步、半同步和取消操作
直接如题,从brpc开源的文档中看到brpc既支持同步调用,同时也支持异步调用。这里直接给出同步、异步的例子,同时对其进行分析。1、brpc同步调用brcp的同步调用是之前的echo的简单例子,所谓同步就是client对远端的server进行调用,同时自己原地等待,等待rpc返回之后,在进行之后的操作。代码如下:#include <iostream>#include <...原创 2018-11-27 21:20:10 · 7809 阅读 · 2 评论 -
通过brpc访问memecached
memcached是一种常见的缓存服务,之前开了一个专门的博客专栏用来讲解博客。在memecached中官网提供了client,C++的版本是libmemcached。这里我们想用brpc去替换到官方的libmemcached完成客户端client的访问,服务端的memcached当然还是一样的。1、brpc优势这里会给出相对于libmemcached,利用brpc写的client有以下的优...原创 2018-11-29 18:11:45 · 626 阅读 · 0 评论 -
brpc学习:ParallelChannel的使用
1、为什么要有parallel channel关于ParallelChannel的使用,首先需要知道parallelchannel实际是为了更好的并发编程使用brpc而提供的一套api。在之前的博客中已经提到了如何使用brpc完成同步、异步的并发操作。虽然它们能完成异步并发的操作,但是这类代码的多线程陷阱很多,用户可能写出了bug也不自知,复现和调试也比较困难。而且实现要么只能支持同步的情况,要...原创 2018-11-29 16:05:43 · 3245 阅读 · 1 评论 -
brpc学习:bvar
文章转载自:brpc学习:bvar一.介绍bvar是多线程环境下的计数器类库,方便记录和查看用户程序中的各类数值,它利用了thread local存储减少了cache bouncing,相比UbMonitor(百度内的老计数器库)几乎不会给程序增加性能开销,也快于竞争频繁的原子操作。brpc集成了bvar,http接口下的/vars可查看所有曝光的bvar,/vars/VARNAME可查阅某...转载 2018-11-29 15:27:20 · 874 阅读 · 0 评论 -
google gflags 库完全使用
原文博客:https://blog.youkuaiyun.com/jcjc918/article/details/50876613简单介绍gflags 是 google 开源的用于处理命令行参数的项目。安装编译项目主页:gflags~ git clone https://github.com/gflags/gflags.git # 下载源码 ~ cd gflagsgflags git:(ma...转载 2018-11-19 17:19:15 · 1521 阅读 · 0 评论 -
RPC和socket的区别
转载博客:https://www.cnblogs.com/Leo_wl/p/8418929.htmlrpc是通过什么实现啊?socket!RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用).越底层,代码越复杂、灵活性越高、效率越高;越上层,抽...转载 2018-11-19 17:02:17 · 10962 阅读 · 0 评论 -
brpc实现CS之间的心跳包
之前有一篇博客已经讲解了如何用protobuf+socket完成心跳包的具体过程,见 protobuf+socket实现CS之间的心跳包. 显然之前并没有用到所谓的rpc的调用功能,只是利用protobuf实现序列化的反序列化的功能。这几天,在学习了brpc开源提供的一些案例的时候,尝试着用brcp去实现cs之间的心跳包,具体的过程如下:brpc的开源例子见链接:https://github....原创 2018-11-21 20:02:35 · 1576 阅读 · 1 评论 -
socket,protobuf,rpc之间的理解
之前有篇博文讲解了prc和socket的区别,但是仅仅是从用户实现角度来判断的,这几天在学习了brpc之后,在这三者的层次上又有了更深刻的理解,这里对这三者的比较在做一个简单的小节。1、三者的定义socket套接字,与底层TCP/IP网络协议栈打交道的对象,直接利用socket进行通信的,类似传统的TCP/UDP的通信,这种通信是以数据流的形式进行交换的,也就是我们称为的二进制数据。那么当...原创 2018-11-21 19:16:54 · 2471 阅读 · 0 评论 -
brpc搭建、编译和使用
前面介绍了brpc的理解,这里给出brpc官方的搭建过程,以及提供的测试用例,对brpc的使用有一个宏观的理解。PS:这里必须再次称赞百度工程师门,brpc开源的文档非常的丰富,仅仅是看文档都受益匪浅,同时提供了各个系统,各个版本的安装编译过程,安装编译文档可以通过以下链接直接查看:https://github.com/brpc/brpc/blob/master/docs/cn/getting...原创 2018-11-15 21:31:26 · 8844 阅读 · 0 评论 -
CMake简介
这篇博客首先给出CMake与Make最简单直接的区别,然后给出在Centos 7上安装使用cmake的一个过程,以供参考。1、CMake与Make的区别写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处...转载 2018-11-15 21:40:34 · 652 阅读 · 0 评论