jamesge

Results 28 comments of jamesge

就是这个意思,机房内回源以合并回源流量

这点在概念上类似于connection preface,就是每次tcp连接后都要发送点特殊的东西,但细节上和协议有比较密切的关系。普通的connection preface一般得是第一份数据且只能发一次,而redis的select,似乎多发两次也没什么(幂等)。一种改法是在[RedisRequest](https://github.com/brpc/brpc/blob/19f3e87409af789cb17b8ef004b5a5aff7540263/src/brpc/redis.h#L48)中增加select的参数,然后在[PackRedisRequest](https://github.com/brpc/brpc/blob/19f3e87409af789cb17b8ef004b5a5aff7540263/src/brpc/policy/redis_protocol.cpp#L178)中做一些特殊处理。

@gydong auth的方法我觉得也是可以,只是现在auth的接口不够通用,不太符合直觉。

用其他算法有类似的现象么?

@linlianmin 非la算法遇到这个问题一般是server全挂了。

有用master head跑过么?

rq is full不会导致直接的问题,coredump可能还是和你的逻辑有关系

试试这个接口,这是专门用来读chunked response的: https://github.com/apache/incubator-brpc/blob/master/src/brpc/progressive_reader.h 但此接口比较底层,获取events后需要append至一个IOBuf内然后按格式边界自行切割、使用

能描述一下大致的格式,或是贴一段典型的数据么?IOBuf中可能有相对便利一些的方法。

> 我现在直接把这个字符串直接做json load是没有边界问题的. 我看了下文档,只有消息体非常大的时候才有边界问题? 这个就属于理论上是错的,但并不是每时每刻都会发生。如果是线上服务,还是建议做正确了比较好,否则追查偶现的bug会耗费更多的时间。 brpc中带一个json2pb,支持用pb message来解析json,之前要求输入只包含一个json,现在我更新了下,可以支持多个json了(需要把Json2PbOptions.allow_remaining_bytes_after_parsing设为true后,默认false),例子可以参考https://github.com/apache/incubator-brpc/blob/master/test/brpc_protobuf_json_unittest.cpp#L1563