首页
学习
活动
专区
工具
TVP
发布

C++开源框架源码分析

分析市面上流行的c++框架源码,包括但不限于rpc、cache、mq,分享设计思路与实现方法
专栏作者
37
文章
76444
阅读量
169
订阅数
腾讯开源框架TarsCpp-rpc设计分析-client(四)
基于上面情形,Transceiver引入了两个TC_Buffer,分别作为发送缓存_sendBuffer和接收缓存_recvBuffer。
路小饭
2019-06-13
1.2K0
腾讯开源框架TarsCpp-rpc设计分析-client(三)
从官方自带的例子TarsCpp/examples/QuickStartDemo/HelloServer/AsyncClient/main.cpp开始
路小饭
2019-06-13
1.3K0
腾讯开源框架TarsCpp-rpc设计分析-client(二)
设置解析协议、选择服务端节点、建立连接、管理连接,如何发送请求、接收结果,这些细节都封装在了ObjectProxy中。
路小饭
2019-06-11
1.3K0
腾讯开源框架TarsCpp-rpc设计分析-client(一)
Tars是腾讯开源的微服务平台,包含了一个高性能的rpc框架和服务治理平台,TarsCpp是其C++版本。对于以C++为主要开发语言,同时还想深入了解rpc和微服务框架具体实现的同学来说,Tars是一个极佳的选择。
路小饭
2019-06-10
2.8K0
GRPC-C++源码分析(十六)--Start续
GRPC C++部分的源码分析暂时写到这里,后面的分析比较粗糙,我自己也觉得不满意,但限于时间,只能先到这儿了。等闲下来时候或许会把缺失的细节补上。同时也非常欢迎有感兴趣的同学前来补充(可以申请成为此专栏的合作者)。
路小饭
2019-04-25
9500
关注专栏作者,随时接收最新技术干货
GRPC-C++源码分析(十五)--Start续
先看PollForWork部分逻辑,PollForWork在for循环中epoll_wait等待client链接
路小饭
2019-04-25
1.7K0
GRPC-C++源码分析(十四)--Start续
先忽略sync_requests_部分,后边再说,重点看Initialize()里的实现。这里分两部分说,第一部分说整个框架逻辑,第二部分分析具体函数调用逻辑。
路小饭
2019-04-24
1.1K0
GRPC-C++源码分析(十三)--Start续
1.1 server_start_listener 这个函数完成了epoll的创建,listen描述符的注册 grpc_server_start-3.jpg server_start_listener最终调用的是tcp_server_start 分段解释下tcp_server_start //tcp_server_posix.cc static void tcp_server_start(grpc_tcp_server* s, grpc_pollset** pollsets,
路小饭
2019-04-24
1.4K0
GRPC-C++源码分析(十二)--Start
这一节可能才是最核心的部分,包括大家理解的怎样注册listen和accept描述符,怎样处理读写事件,怎样处理业务逻辑等等。
路小饭
2019-04-23
1.1K0
GRPC-C++源码分析(十一)--bind&listen
对应于《GRPC-C++源码分析(三)--main线程》中1.5节 for (auto port = ports_.begin(); port != ports_.end(); port++) { int r = server->AddListeningPort(port->addr, port->creds.get()); if (!r) { if (added_port) server->Shutdown(); return nullptr; }
路小饭
2019-04-23
1.3K0
GRPC-C++源码分析(十)--Register
对应于《GRPC-C++源码分析(三)--main线程》中1.3节和1.4节 1 grpc_server_register_completion_queue for (auto it = sync_server_cqs->begin(); it != sync_server_cqs->end(); ++it) { grpc_server_register_completion_queue(server->server_, (*it)->cq(),
路小饭
2019-04-23
1.2K0
GRPC-C++源码分析(九)--Server
对应《GRPC-C++源码分析(三)--main线程》中的1.2节 创建Server
路小饭
2019-04-22
1.4K0
GRPC-C++源码分析(八)--ServerCompletionQueue续
3.3 小结 还是回到开头CompletionQueue类的构造函数 CompletionQueue(const grpc_completion_queue_attributes& attributes) { cq_ = g_core_codegen_interface->grpc_completion_queue_create( g_core_codegen_interface->grpc_completion_queue_factory_lookup(
路小饭
2019-04-22
1.4K0
GRPC-C++源码分析(七)--ServerCompletionQueue续
3.2.1 cq初始化 cq = static_cast<grpc_completion_queue*>( gpr_zalloc(sizeof(grpc_completion_queue) + vtable->data_size + poller_vtable->size())); vtable->data_size为 sizeof(cq_next_data) poller_vtable->size为 grpc_pollset_size 稍微解释下grpc_
路小饭
2019-04-22
1.2K0
GRPC-C++源码分析(六)--ServerCompletionQueue续
2.2节中已经看到g_core_codegen_interface的初始化,grpc_completion_queue_factory_lookup在父类CoreCodegenInterface中是个纯虚函数,具体实现在CoreCodegen类中
路小饭
2019-04-22
2K0
GRPC-C++源码分析(五)--ServerCompletionQueue续
如果整个2.1节都没理解也没关系,记住我们有了一个grpc_event_engine_vtable* g_event_engine指针就可以了,这个指针的内容就是上面的static const grpc_event_engine_vtable vtable
路小饭
2019-04-22
1.7K0
GRPC-C++源码分析(四)--ServerCompletionQueue
对应《GRPC-C++源码分析(三)--main线程》中的1.1节 初始化ServerCompletionQueue
路小饭
2019-04-22
3.4K1
GRPC-C++源码分析(三)--main线程
如果没有特殊喜好,推荐从example/cpp/helloworld/greeter_server.cc开始阅读。前期分析的是同步部分的代码。
路小饭
2019-04-21
3.2K0
GRPC-C++源码分析(二)--线程模型
接着从线程模型的角度再来认识grpc。先上图 grpc-thread线程模型.jpg 图中绿色的方框代表线程 红色虚线表示新线程的创建 红色方框是公共的list 蓝色字体的方框是“关键字”,标示了第一章网络模型中出现的关键字,方便一一对应 DoWork是逻辑处理模块 main是主线程,完成了描述符的bind和listen。创建了两个执行线程default-excutor和reslover-excutor,创建了一个epoll_wait线程SyncRequestThreadManager,SyncReque
路小饭
2019-04-19
3.6K0
GRPC-C++源码分析(一)--网络模型
做rpc选型时候,有人说到grpc,想在网上找一些grpc c/c++的源码分析来帮助理解,发现除了官方doc里带的文档外寥寥无几(也可能是自己没找到?)。只能自己捋起袖子“啃一啃”grpc的源码。
路小饭
2019-04-18
4.1K1
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档