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? (你需要的功能是否与某个问题有关?)** 无 **Describe alternatives you've considered (描述你想到的折衷方案)** 直接 steal 一个 batch ,减少 steal 的次数可能会更好吧,我正在做相关的优化,不知道这是不是有帮助的,希望能提前解答一下之前是够有相关的考虑和实验 **Additional context/screenshots (更多上下文/截图)**
**Describe the bug (描述bug)** 似乎遇到了和 #1369 同样的问题,发生概率非常低,暂不知道复现方法 brpc commit: 65e6e76a6a6388a507beb0d82cb516bdca56fc59 ``` (gdb) bt -- #0 0x0000000000fe657b in brpc::Controller::RunOnCancel(bthread_id_t, void*, int) () #1 0x0000000000fc692b in bthread_id_error_verbose () #2 0x0000000000fed163 in brpc::Controller::ResetNonPods()...
sh config_brpc.sh --headers=/usr/include --libs=/usr/lib --cxx=clang++ --cc=clang make > Compiling src/mcpack2pb/generator.o clang++ -c -I./src -I/usr/include/ -DBRPC_WITH_GLOG=0 -DGFLAGS_NS=google -g -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 -DNDEBUG -DBRPC_REVISION=\"1.0.0\|master\|6eec0603\|2022-04-07T09:31:12+08:00\" -O2 -pipe -Wall...
我的项目使用了brpc,但需要连接etcd做服务发现,brpc中有写好的etcd client代码吗?我使用的功能如下:1、基本功能(put, get等),2、etcd client得心跳监控,3、watch监控节点变化的功能。如果没有etcd client代码,我使用https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3 这个etcd官方推荐的库可以吗?或者有好的方式推荐一下
**Describe the bug (描述bug)** 最近在生产环境出了一次故障,现象是流量扛不住的时候,自动扩容,但即使这样,扩容的部分CPU也会升至100%,即使流量后面没有变化,容器数量近乎是原来的6倍 在测试环境压测了下,复现了。现象是开启了3个容器,其中一个容器在一开始CPU逐渐上升至100%,而其他容器的cpu仍然是20%,在开始停止的时刻,其他两个容器cpu也迅速升至100% > #0 0x00007fa34edd1b5d in read () from /lib64/libc.so.6 #1 0x00000000007e824e in google::ReadPersistent(int, void*, unsigned long) () #2 0x00000000007e892e in google::FindSymbol(unsigned long, int, char*, int,...
h2c/grpc遗留问题
- [ ] 明确一些边缘header的设置规则,比如[grpc-]accept-encoding, grpc-timeout - [ ] 改进server端判定client端是否支持gzip的方法,client端不一定要设置accept-encoding - [x] grpc不支持application/grpc+json - [ ] 考虑移除x-bd-error-code x-bd-log-id等字段的可行性。 - [ ] http/h2c支持snappy压缩。(deflate就没必要支持了) - [x] http_verbose排版不对,且不是原子写出,多线程下可能交叉 - [x] protocol支持传递协议参数 - [ ]...
**Describe the bug (描述bug)** channel复用,init一次,使用http:// ,rr算法,pooled连接池方式,流量比较大的时候,就会产生大量的[E112]Fail to select server from http://xxx.com,但是服务是正常的,正确和错误的请求一直都在,有点像pooled的线程被占满后,其他请求都直接报错? **To Reproduce (复现方法)** **Expected behavior (期望行为)** **Versions (各种版本)** OS: Compiler: brpc: protobuf: **Additional context/screenshots (更多上下文/截图)**
centos 8 aarch64 ``` # cat /etc/os-release NAME="CentOS Linux" VERSION="8" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="8" PLATFORM_ID="platform:el8" PRETTY_NAME="CentOS Linux 8" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:8" HOME_URL="https://centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-8" CENTOS_MANTISBT_PROJECT_VERSION="8" ``` 参考文档运行 yum install git gcc-c++...
bazel应该是目前最有前途的cpp构建体系 brpc是支持bazel的,只是版本比较低好像6 目前最新的bazel 7 支持https://registry.bazel.build/ 有比较完善的包依赖,这样会让brpc用起来更加方便,新增依赖的库就不用自己整了。
**Describe the bug (描述bug)** All APIs that accept timeout say the timeout should be measured in clock_realtime. However, under the hook, brpc uses futex syscall to wait for a specific...