brpc icon indicating copy to clipboard operation
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...

Results 414 brpc issues
Sort by recently updated
recently updated
newest added

**Describe the bug (描述bug)** wrr在上游节点很多同时频繁调权的情况下会出现QPS的抖动 **To Reproduce (复现方法)** 上游设置如50个节点按照wrr访问下游3个节点,期间每10s调权一次。 **Expected behavior (期望行为)** 权重最大的节点QPS会向上波动。 **Versions (各种版本)** OS: Compiler: brpc: protobuf: **Additional context/screenshots (更多上下文/截图)** 我理解是wrr初始化的时候不是按照权重概率计算节点的,如果下游节点只有3-4个,那么命中权重最大的节点的概率比 权重/sum(权重)的概率要大

实现了基于 length + body 的自定义协议,使用 rpc press 压测发现,下游只有一个节点时,时耗稳定并且耗时很小,如果增加下游节点(使用 rr 模式),耗时99线明显上升。 下游节点机器、性能、网络均大致相同,正常情况下处理时耗较短,并且耗时高的 ip 均匀分布。 **以下是 1 个下游节点的测试情况:** =========================================================================== 2022/07/04-15:38:47 sent:3001 success:3002 error:0 total_error:0 total_sent:261105 2022/07/04-15:38:48 sent:3001 success:3001 error:0 total_error:0 total_sent:264106 2022/07/04-15:38:49...

only support KV, Lease, Watch service API now

**Describe the bug (描述bug)** 日志中经常出现 bvar/default_variables.cpp:442] Fail to fscanf: Permission denied,1s一次 **To Reproduce (复现方法)** 我们为qemu提供了一个block driver,在使用的时候会出现上面的日志。 **Expected behavior (期望行为)** 看了一下对应的代码,奇怪的是可以打开/proc/self/io,但是在后续fscanf的时候提示没有权限。 #788 是一个比较类似的,他们的情况是打开的时候就提示无权限。 现在期望能定位一下问题,或者,能不能把这个功能`read_proc_io`暂时屏蔽了。 **Versions (各种版本)** OS: debian7(3.10) Compiler: gcc-4,9 brpc:...

https://github.com/apache/incubator-brpc/issues/1807

现在看起来没有固定的格式化风格(还是我没看到?),这样本地开发的时候不敢 format,有考虑引入一个 clang format 吗,用工具来做统一的格式化,方便点。

closed #1803 support handle `on_received_messages` failure of streaming rpc, user can overload `on_failure` of `StreamInputHandler` to handle `on_received_messages` failure, the default is do nothing

**Describe the bug (描述bug)** Hi 各位, 我是vcpkg维护者。 这段时间我们收到了一个brpc的build失败问题 ( https://github.com/microsoft/vcpkg/issues/22962 ): ``` [328/338] : && /usr/bin/c++ -DBRPC_WITH_GLOG=1 -DGFLAGS_NS=google -DBTHREAD_USE_FAST_PTHREAD_MUTEX -D__const__= -D_GNU_SOURCE -DUSE_SYMBOLIZE -DNO_TCMALLOC -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DBRPC_REVISION=\"0.9.7\|master\|7e7dad5fe\|2022-02-04T18:00:26-08:00\" -D__STRICT_ANSI__ -g -DENABLE_THRIFT_FRAMED_PROTOCOL...

**Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)** brpc支持请求mongodb服务,支持副本集。 **Describe the solution you'd like (描述你期望的解决方法)** 实现[MongoDB Wire Protocol](https://www.mongodb.com/docs/manual/reference/mongodb-wire-protocol/),使用Request Opcode `OP_MSG`。添加InsertRequest/Response,QueryRequest/Response,GetMoreRequest/Response(游标操作),CountRequest/Response,DeleteRequest/Response,UpdateRequest/Response,FindAndModifyRequest/Response protobuf定义,`PackRequest`转换为Mongo OP_MSG,`ProcessResponse`将解析Mongo OP_MSG,转换为pb。 副本集功能的支持,添加一个`NamingService`通过`replSetGetStatus`获取副本集中的各个节点的状态,返回`PRIMARY`节点。 **Describe alternatives you've considered (描述你想到的折衷方案)**...

这个PR的目的是解决我之前提出的一个issue #1315 我们有一些场景,比如对response、request的整体(或其中大量字段)做落盘(比如经过某种序列化,然后把结果发送给kafka等MQ), 希望能在response返回给客户端之后,再做这个操作。避免占用请求响应的时间。然而之前的Done->Run()调用之后,request、response所指向对象都会被析构,则无法实现这个需求。故而我这次给brpc的Controller新增一个回调函数,可以由使用方注册一个回调逻辑,在response返回之后,但request、response析构之后来执行。 **该功能目前在常用的 baidu_std/http/http2 协议上支持。其他协议未开发。** @zyearn 希望看看,如果有函数设计或命名有不妥之处欢迎提出。 另外我修改了example里面的三个server代码,来展示我新增的这个函数的用法,不知道是否允许。或者我应该写在某个文档里面,而不是直接改example?