brpc
brpc copied to clipboard
brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means...
Some of the member functions of EventDispatcher are implementation specific, for example AddEpollOut. We need to change that specific function name and adopt more general name then we can easily...
**Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)** brpc streaming **Describe the solution you'd like (描述你期望的解决方法)** 需求可以简化为send 端如何切分, 接收端如何合并回来 1. 做在协议层 2. 在 iobuffer 上切分 The requirement can be...
Add support for thrift compact protocol Related issue https://github.com/apache/incubator-brpc/issues/959 Related PR https://github.com/apache/incubator-brpc/pull/960
**Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)** 方便gdb && pstack 的时候找到bthread 使用线程 **Describe the solution you'd like (描述你期望的解决方法)** pthread_setname_np **Describe alternatives you've considered (描述你想到的折衷方案)** 在TaskControl::init, TaskControl::add_works TimeThread::Start 创建线程时使用...
**Describe the bug (描述bug)** 网络丢包率和拥塞增加时,rpc client iobuf使用量激增,造成OOM **To Reproduce (复现方法)** 正在尝试复现 **Expected behavior (期望行为)** iobuf及时回收,不造成OOM **Versions (各种版本)** OS: CentOS release 6.3 2.6.32_1-28-0-0 (BAIDU) Compiler: gcc 4.8.2 brpc: baidu 内部版本 baidu-rpc:stable:a35fbd9d8341ad69412001d482f8e893c47df237...
**Describe the bug (描述bug)** [`AnnotateBenignRaceSized`](https://github.com/apache/incubator-brpc/blob/80f9f2f160c168a5b139006974484ca8ee3a9ef6/src/butil/third_party/dynamic_annotations/dynamic_annotations.h#L500) defined in `butil/third_party/dynamic_annotations/dynamic_annotations.h` has a parameter `long size`, while most modern libraries declaring it as `size_t size` (_e.g._ `abseil-cpp`, `glog`, etc.). The mismatch causes a...
**Describe the bug (描述bug)** I use following `channel Init` API to resolve full dns hostname. ```c++ std::string naming_service_url("http://myhost0.local:8002"); const char *load_balancer_name = "random"; brpc::Channel channel; if (0 != channel.Init(naming_service_url.c_str(), load_balancer_name,...
背景:一些使用到的第三方库甚至标准库,都会有抛异常的情况。目前除了thrift,其他协议都没有捕获服务回调方法抛出的异常。这样使用的时候,只能等服务因抛异常而crash后,经过排查修复后,重新上线才能解决问题,相当于需要一次试错的成本。 期望:很多时候,异常case才会触发抛异常的逻辑,不需要让服务crash。其他协议的处理方式可以和thrift一样(http协议支持持续发送,需要特殊处理),捕获异常,返回错误给上游,并打印异常信息,使用方根据异常信息排查修复问题后,升级服务即可。
看brpc的代码,brpc负责运行bthread的内核线程(内核线程数默认和服务器的cpu逻辑核数相同),没有做绑核操作,这是基于什么考虑啊?绑核性能是不是会更好?我们seastar的一些框架都会做绑核操作。
**Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)** It is inevitable that there are problems in the code of manual review. Adding integration test workflow can effectively solve this...