V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eightqueen
V2EX  ›  Java

thrift 服务端如何获取整个调用链?

  •  
  •   eightqueen · 2015-05-07 21:10:25 +08:00 · 4123 次点击
    这是一个创建于 3516 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们的设想是从移动端的请求开始,生成一个MD5,接下来每一次对请求的处理都会传递这个MD5,这样的话一旦thrift报错,我知道是哪个请求导致的.但是MD5不能放到形参里.

    13 条回复    2015-05-08 20:17:36 +08:00
    Codist
        1
    Codist  
       2015-05-07 21:27:50 +08:00
    生成一个随机字符串就好了吧
    hhkbp2
        2
    hhkbp2  
       2015-05-07 21:43:23 +08:00
    参数可以定义为任意类型,怎么不能放入md5呢
    eightqueen
        3
    eightqueen  
    OP
       2015-05-07 21:55:40 +08:00
    @hhkbp2 为了向后兼容,形参绝对不能变
    hhkbp2
        4
    hhkbp2  
       2015-05-07 22:33:46 +08:00
    @eightqueen thrift支持添加参数的呀,怎么不能变呢
    eightqueen
        5
    eightqueen  
    OP
       2015-05-07 23:32:28 +08:00
    @hhkbp2 比如我有个接口是find(long id),在接口不变的前提下,客户端传给我一个md5,不能增加参数,find(string md5, long id)
    semicircle21
        6
    semicircle21  
       2015-05-08 07:15:00 +08:00
    如果你要插入一个 md5 到最前面, 那确实是不行的.
    不过你可以考虑传结构体, 想设计一个流芳百世的接口, 就是传单结构体...
    你看微信 sdk 接口那样...

    另外, 我现在说 thrift 不太适合做客户端到服务器端通信还来得及吗?
    https://semicircle.github.io/blog/2015/01/19/thrift-get-away-from-pitfalls/
    semicircle21
        7
    semicircle21  
       2015-05-08 07:16:16 +08:00
    没主意你发在 java 节点, 那就是 android 移动端咯...
    "不太适合"之类的当我没说吧...
    hhkbp2
        8
    hhkbp2  
       2015-05-08 10:31:40 +08:00
    @eightqueen 可以读读http://diwakergupta.github.io/thrift-missing-guide/#_versioning_compatibility
    了解一下thrift如何支持添加参数并保持向旧版本兼容
    lxyu
        9
    lxyu  
       2015-05-08 11:03:46 +08:00
    eleme 自用的 thriftpy 有实现一套 tracking 功能。可以看看这里 https://github.com/eleme/thriftpy/wiki/Thriftpy-Tracking
    lxyu
        10
    lxyu  
       2015-05-08 11:08:58 +08:00
    如果是 java 语言的话,可以看看 twitter 的 finagle,里面也有实现一套 tracking 机制。简单来说是定制一个向后兼容的 protocol,在每个请求里面加入一段 header。
    eightqueen
        11
    eightqueen  
    OP
       2015-05-08 11:19:14 +08:00
    @semicircle21 thrift服务专门用来访问数据库,前面还有一堆中间件,直接与移动端交互的是PHP
    eightqueen
        12
    eightqueen  
    OP
       2015-05-08 11:30:06 +08:00
    @semicircle21 thrift服务不与移动端对接,前面有PHP
    garfeildma
        13
    garfeildma  
       2015-05-08 20:17:36 +08:00
    最新版的还是fb版的thrift已经支持header了,可以看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:18 · PVG 23:18 · LAX 07:18 · JFK 10:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.