-
Notifications
You must be signed in to change notification settings - Fork 654
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sofa-pbrpc cookie功能设计 #79
Comments
@qinzuoyan ,左言有什么建议? |
这个和sofa里面的cookie机制是一样的吗?实现上有什么区别? |
sofa里的cookie是在库里边实现的,即数据格式规定是kv map。这个设计在库里边增加了RpcAttachment基类、序列化反序列化接口以及用户接口,cookie作为插件在用户层继承RpcAttachment,定义了数据格式和序列化、反序列化操作等。 |
恩,明白了,这个要赞,用户可定制自己的attachment,更灵活。 另外我建议,可以实现一些常见的实现,在编译的时候,可以类似protobuf一样生成一个lite库和一个full库。譬如可以在full库中提供这些常见实现:
|
@qinzuoyan ,左言有时间帮忙审核一下pr#81? |
Ok, 最近找时间review On Mon, Apr 4, 2016 at 10:44 PM, zd-double [email protected] wrote:
|
赞! |
背景
在rpc的应用场景中,用户需要传输非protobuf协议封装的数据,数据的格式和操作由用户定义,这些数据最终都以字节流的方式在client和server之间传输。需要在sofa-pbrpc内部实现一套attachment机制,支持用户自定义附加数据的格式和操作,用户在client端设置附加数据,server端接受并进行操作。基于该机制为用户提供默认的Cookie插件,用于存储和传输logid等client端的状态信息。
功能
实现sofa-pbrpc attachment机制,支持用户附加数据,附加数据的定义和操作在用户层实现。并基于此机制实现cookie插件
接口设计
GetRequestAttachment(RpcAttachment& attach), 利用attach对象的Deserialize接口将附加数据反序列化。Server端可以对attachment数据进行增删改查
Attachment基类:
RpcController增加接口:
使用方法
Cookie插件:
Client端示例:
Server端示例:
The text was updated successfully, but these errors were encountered: