Brpc代码分析(二)

2021SC@SDUSC

百度内最常使用的工业级RPC框架,有1000000+个实例,“brpc”的含义是“better RPC”

我们可以使用他:

搭建一个能在一个端口支持多协议的服,或者访问各种服务

Server能同步或异步处理请求。

Client支持同步.异步.版同步.或使用组合channels简化复杂的分库或者并发访问。

通过http界面调试服务,使用cpu,heap,contention profilers。

获得更好地延时和吞吐。

把个人组织中使用的协议快速地加入brpc,或制动各类组件,包括命名服务(dns,zketcd,),负载均衡(rr,random,cons,istent hashing)

填写proto文件:

请求,回复,服务的接口均定义在proto文件中。

 其中要使用到protobuf,protobuf是Google提供一个具有高效的协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是Json的3-5倍。

Protobuf提供了c++,java。python语言的支持,提供了windows(proto.exe)和linux平台动态编译生成proto文件对应的源文件。proto文件定义了协议数据中的实体结构

关键字message:代表了实体结构,有多个消息字段(field)组成。

消息字段(field):包括数据类型。字段名。字段规则。字段唯一标识。默认值。

数据类型:常见的原子类型都支持

字段规则:(在FieldDescriptor::kLabelToName中定义)

      required:必须初始化字段,如果没有赋值,在数据序列化时会抛出异常

       optional:可选字段,可以不必初始化。

       repeated:数据可以重复(相当于java中的Array或List)

       字段唯一标识:序列化和反序列化将会使用到。

默认值:在定义消息字段时可以给出默认值。

实现生成的Service接口

protoc运行后会生成echo.bp.cc和echo.pb.h文件,我们得include echo.bp.h,实现其中的EchoService基类

 这里需要注意

Service在插入brpc.Server后才可能提供服务。

当客户端发来请求是&

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值