brpc icon indicating copy to clipboard operation
brpc copied to clipboard

mongodb client 支持

Open zhangke96 opened this issue 3 years ago • 0 comments

Is your feature request related to a problem? (你需要的功能是否与某个问题有关?) brpc支持请求mongodb服务,支持副本集。

Describe the solution you'd like (描述你期望的解决方法) 实现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 (描述你想到的折衷方案) MongoDB文档没有详细描述CRUD操作的协议,因此可以通过编写MongoDB CRUD测试程序抓包模仿实现。

Additional context/screenshots (更多上下文/截图) 现在已经实现了mongo insert, find, getMore, count, delete, update, findAndModify操作,能够支持副本集(只会使用PRIMARY节点)

zhangke96 avatar Jun 19 '22 13:06 zhangke96