Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问后续的源码分析什么时候更新,感谢 #4

Open
cuisonghui opened this issue Feb 5, 2020 · 9 comments
Open

请问后续的源码分析什么时候更新,感谢 #4

cuisonghui opened this issue Feb 5, 2020 · 9 comments

Comments

@cuisonghui
Copy link

No description provided.

@ronaldo8210
Copy link
Owner

近期在研究zookeeper分布式方面的代码,brpc这块过些日子争取把bvar性能监控的源码分析加上

@cuisonghui
Copy link
Author

好的,谢谢。

@cuisonghui
Copy link
Author

实际上比较期待: Server端执行流程,处理一次RPC请求的完整过程

@ronaldo8210
Copy link
Owner

brpc的Server端处理请求方式和传统的多线程服务器不一样,没有区分I/O线程和worker线程,处理eventLoop的bthread和处理每个请求的bthread都是在TaskGroup线程上执行,避免了传统多线程服务器的一些问题,并且也能够做到同一个TCP连接上的多个RPC请求并发处理。在brpc的官方wiki上都有相关描述,顺着这个思路基本可以理清Server端的工作流程了。主要还是要把各个对象的内存布局整理出来,以及各个对象是在协程私有栈上分配or在堆上分配,理清几个重要对象的生命期,再梳理各个线程是如何操作那些对象的,这样基本就能理解的比较透彻了。Server端的限流和防雪崩机制也值得重点关注下,源码学透后可以用在实际工作中。

@cuisonghui
Copy link
Author

brpc的Server端处理请求方式和传统的多线程服务器不一样,没有区分I/O线程和worker线程,处理eventLoop的bthread和处理每个请求的bthread都是在TaskGroup线程上执行,避免了传统多线程服务器的一些问题,并且也能够做到同一个TCP连接上的多个RPC请求并发处理。在brpc的官方wiki上都有相关描述,顺着这个思路基本可以理清Server端的工作流程了。主要还是要把各个对象的内存布局整理出来,以及各个对象是在协程私有栈上分配or在堆上分配,理清几个重要对象的生命期,再梳理各个线程是如何操作那些对象的,这样基本就能理解的比较透彻了。Server端的限流和防雪崩机制也值得重点关注下,源码学透后可以用在实际工作中。

赞,谢谢解答。

@deardeng
Copy link

写的不错,催更

@evan-zxx
Copy link

日常催更^-^

@WoodsCumming
Copy link

写的棒~ 催更

@M201972777
Copy link

催更 写的太棒了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants