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...
**Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)** tools工具下有个`gdb_bthread_stack.py`脚本,但是需要gdb attach,会导致gdb挂起,而且性能非常挫,bthread是否可以加一个STW,然后打印bthred stack,类似golang runtime中的实现。 **Describe the solution you'd like (描述你期望的解决方法)** **Describe alternatives you've considered (描述你想到的折衷方案)** **Additional context/screenshots (更多上下文/截图)**
demo program: `#include #include int main() { char *ptr = (char *)tc_malloc(sizeof(char)); if(ptr){ printf("tcmalloc works failed!\n"); } tc_free(ptr); printf("tcmalloc works fine.\n"); return 0; }` Execution issues after cross compilation: ldd...
**Describe the bug (描述bug)** brpc/example/multi_threaded_echo_c++ 启动brpc服务端,启动brpc客户端进行压测,thread_num为200,在同一台主机上启动多个客户端,系统CPU始终占不完,top命令查看,最多只能占用到85%左右,还有10%+的idle. server进程的CPU占用在1700%左右。如果启动两个server,一个监听8002端口,一个监听8003端口,在同一台主机上分别启动多个客户端对这两个server进行压测,加大压力,系统CPU还是只能占到85%左右,此时两个server进程的CPU占用合起来在1700%左右。看起来像是rpc服务端受到什么系统资源的限制,压测时无法占满主机的CPU,调整client.cpp中的attachment_size和request_size大小还是如此,压测无法将主机CPU资源占满 **To Reproduce (复现方法)** 见 (描述bug) **Expected behavior (期望行为)** 同一台主机,加大客户端压力,可以压满主机的CPU;或者启动不同的rpc服务端,分别进行压测,可以压满主机的CPU **Versions (各种版本)** OS: Linux optane152 Compiler: gcc version 8.3.0 (GCC) brpc: 当前git上最新版本的代码 protobuf: **Additional...
[tmp.pdf](https://github.com/apache/brpc/files/12645457/tmp.pdf)
**Describe the bug (描述bug)** 通过如下代码获取 bvar::Variable::describe_exposed("process_cpu_usage"); 获取到的 process_cpu_usage 与 brpc 内部监控页面获取的数值不一致且有延迟,请问是我使用的方式不对吗? **To Reproduce (复现方法)** **Expected behavior (期望行为)** **Versions (各种版本)** OS: Compiler: brpc: protobuf: **Additional context/screenshots (更多上下文/截图)**
**Describe the bug (描述bug)** streaming模式下,server向client推流,message较大,每次StreamWrite 16M, 两个client同时发起echo调用,server同时向两个client推流,其中一个client会报错: `I20230914 02:58:02.964776 24499 client.cpp:45] One message: size=16777216 I20230914 02:58:02.964805 24499 client.cpp:49] [144]Received from Stream=1: size = 16777216 I20230914 02:58:03.004117 24499 client.cpp:45] One message:...
**Describe the bug (描述bug)** 项目中同时使用milvus(依赖grpc)和brpc会出错 项目里的protobuf版本会冲突 **To Reproduce (复现方法)** **Expected behavior (期望行为)** **Versions (各种版本)** OS: Compiler: brpc: protobuf: **Additional context/screenshots (更多上下文/截图)**
**Describe the bug (描述bug)** 怎么理解lalb文档里面关于base_weight的下面这句话的描述? '除了待删除节点,所有节点的权值绝对不会为0。' https://github.com/apache/brpc/blob/master/docs/cn/lalb.md 因为根据 https://github.com/apache/brpc/issues/820 , base_weight是有可能为0值的 **To Reproduce (复现方法)** **Expected behavior (期望行为)** **Versions (各种版本)** OS: Compiler: brpc: protobuf: **Additional context/screenshots (更多上下文/截图)**
brpc故障恢复bug
注入网络重启故障 network restart,brpc channel发送rpc request一直超时 日志一直打印:[E112]Not connected to xxxx yet 对应代码位于:Controller::IssueRPC  brpc版本:0.9.7 bvar看channel是broken的,这样导致brpc一直无法自动恢复。有点像是socket管理的bug,broken的channel没用调用connect重连