【发布时间】:2015-12-10 20:29:40
【问题描述】:
我正在尝试编写一个在服务器中应用过滤器的 finagle-thrift 服务。
finagle-thrift 从您实现的 thrift IDL 生成一个服务接口 (Iface),然后传递给 Thrift.serveIface(addr, Iface) 方法。还有另一种方法Thrift.serve(addr, Service[Req, Rep]) 可用于提供更通用的服务。可以组合服务,所以我想做Thrift.service(addr, myFilter andThen myService)之类的事情,但我不知道如何将Iface转换为服务。
Thrift.serveIface 方法使用私有方法 serverFromIface,它执行 Iface 到服务的转换,这将允许我在将服务传递给 Thrift.serve 之前使用过滤器组合服务。见:https://github.com/twitter/finagle/blob/master/finagle-thrift/src/main/scala/com/twitter/finagle/rich.scala
由于该转换是私有的,我不知道应该如何在服务器中应用过滤器。
【问题讨论】: