logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

brpc源码解析(一)—— rpc服务添加以及服务器启动主要过程

目录1.往server里添加Service(业务代码)2.设置服务器参数3.启动服务器平时的工作用到了baidu-rpc搭建rpc服务,作为戈君大神的大作,在没有开源的时候,这个c++ 的rpc框架在厂内就已经好评颇多,无论是性能、文档、还是代码注释都很优秀,内部使用范围特别广,17年开源,开源版本叫做brpc,开源后不少大厂都有使用,目前已经进入Apache孵化器,源码以及文档的地址如下:ht.

#rpc
brpc源码解析(十一)—— 核心组件bvar详解(2)Reducer类和Adder类解析

目录1. Reducer类2. Adder类3. 总结上一篇文章聊了下bvar的整体组织架构,本篇将从最基本的计数器Adder的使用出发,分析Reducer和Adder的源码来阐述下最基本也是最重要的bvar工作机制,后续再进一步深入分析相关基础组件和其他类型的bvar,我觉得这也是一个比较有效地阅读分析这种基础类库源码的方式。整个brpc源码解析系列其实也是这么一个组织结构,先从使用的部分切入.

#c++#rpc
brpc源码解析(九)—— 基础类WorkStealingQueue详解

目录1. 基本介绍2. 类变量和初始化3. push函数4. pop函数5. steal函数6. atomic_thread_fence(butil::memory_order_seq_cst)的必要性7. volatile_size函数前面介绍过,work stealing queue是bthread种的重要机制,worker给自己的队列里添加任务,消化任务,也如果空闲下来了就会去其他work.

#c++#后端#rpc
brpc源码解析(七)—— worker基于ParkingLot的bthread调度

前面已经介绍过了bthread的主要机制,但对于具体的调度细节没有过多涉及,本篇将在着重介绍下bhtread在各个worker(taskgroup)之间的调度方式。在brpc里,有个和调度相关的重要类ParkingLot,parking lot 本质上就是基于futex的wait/signal,以前没太多接触过futex,刚好趁着阅读brpc的源码熟悉下futex的机制。Futex是linux一.

#c++#rpc
brpc源码解析(四)—— Bthread机制

Bthread是brpc用到的一个线程库,也是brpc的核心之一,默认情况下,包括用户代码在内的绝大部分代码都是运行在bthread里的,bthread也是brpc实现高性能的基石。bhtread官方文档定义如下:bthread是baidu-rpc使用的M:N线程库,目的是在提高程序的并发度的同时,降低编码难度,并在核数日益增多的CPU上提供更好的scalability, cache loca..

#c++#rpc#后端
到底了