我们的设想是从移动端的请求开始,生成一个MD5,接下来每一次对请求的处理都会传递这个MD5,这样的话一旦thrift报错,我知道是哪个请求导致的.但是MD5不能放到形参里.
我们的设想是从移动端的请求开始,生成一个MD5,接下来每一次对请求的处理都会传递这个MD5,这样的话一旦thrift报错,我知道是哪个请求导致的.但是MD5不能放到形参里.
|
CodistMay 7, 2015
1
生成一个随机字符串就好了吧
|
|
hhkbp2May 7, 2015
2
参数可以定义为任意类型,怎么不能放入md5呢
|
|
3
@hhkbp2 为了向后兼容,形参绝对不能变
|
|
hhkbp2May 7, 2015
4
@eightqueen thrift支持添加参数的呀,怎么不能变呢
|
|
5
@hhkbp2 比如我有个接口是find(long id),在接口不变的前提下,客户端传给我一个md5,不能增加参数,find(string md5, long id)
|
|
semicircle21May 8, 2015
6
如果你要插入一个 md5 到最前面, 那确实是不行的.
不过你可以考虑传结构体, 想设计一个流芳百世的接口, 就是传单结构体... 你看微信 sdk 接口那样... 另外, 我现在说 thrift 不太适合做客户端到服务器端通信还来得及吗? https://semicircle.github.io/blog/2015/01/19/thrift-get-away-from-pitfalls/ |
|
semicircle21May 8, 2015
7
没主意你发在 java 节点, 那就是 android 移动端咯...
"不太适合"之类的当我没说吧... |
|
hhkbp2May 8, 2015
8
@eightqueen 可以读读http://diwakergupta.github.io/thrift-missing-guide/#_versioning_compatibility
了解一下thrift如何支持添加参数并保持向旧版本兼容 |
|
lxyuMay 8, 2015
9
eleme 自用的 thriftpy 有实现一套 tracking 功能。可以看看这里 https://github.com/eleme/thriftpy/wiki/Thriftpy-Tracking
|
|
lxyuMay 8, 2015
10
如果是 java 语言的话,可以看看 twitter 的 finagle,里面也有实现一套 tracking 机制。简单来说是定制一个向后兼容的 protocol,在每个请求里面加入一段 header。
|
|
11
@semicircle21 thrift服务专门用来访问数据库,前面还有一堆中间件,直接与移动端交互的是PHP
|
|
12
@semicircle21 thrift服务不与移动端对接,前面有PHP
|
|
garfeildmaMay 8, 2015
13
最新版的还是fb版的thrift已经支持header了,可以看看
|