Filter 节俭之上的管理层

Filter 节俭之上的管理层,filter,thrift,session-management,Filter,Thrift,Session Management,听起来很棒,但找不到我在RPC框架(如HttpServlet)中使用过的一些基本东西。我找不到的例子:会话管理、过滤、上传/下载进度 我知道缺少的东西可能是节俭之上的管理层。如果是,有这样一个层的例子吗?也许是AOP(面向方面) 我无法想象这样一个可以编译所有语言的层,而这正是我所缺少的。以会话管理为例,可能有多个客户端都需要进行一些身份验证,并在每个RPC上传递会话id。我希望所有这样做的语言都能使用类似的API 有人知道节俭的管理层吗?所以节俭本身在这里帮不了你多少忙。 我也有类似的愿望,并

听起来很棒,但找不到我在RPC框架(如HttpServlet)中使用过的一些基本东西。我找不到的例子:会话管理、过滤、上传/下载进度

我知道缺少的东西可能是节俭之上的管理层。如果是,有这样一个层的例子吗?也许是AOP(面向方面)

我无法想象这样一个可以编译所有语言的层,而这正是我所缺少的。以会话管理为例,可能有多个客户端都需要进行一些身份验证,并在每个RPC上传递会话id。我希望所有这样做的语言都能使用类似的API


有人知道节俭的管理层吗?

所以节俭本身在这里帮不了你多少忙。 我也有类似的愿望,并有一些建议:

1.将管理对象放入IDL 只需将api令牌或公共传输数据结构作为参数添加到所有服务方法中。将它设置为参数ID 15,使它始终是最后一个参数,即使在中间添加其他参数。 作为处理程序的第一步,您可以对额外数据进行验证/存储/执行任何操作

这样做的好处是,它在thrift支持的任何平台上都是有效的

2.通过http使用节约 如果使用http作为传输,则可以将任何需要的数据作为http头,将节俭内容作为正文

这通常需要为您用于注入数据的每个平台提供一个自定义http客户端,并在服务器上提供一个自定义处理程序来使用数据,但这两者都不是非常困难的

3.破解协议 您可以创建自己的自定义协议来包装另一个协议并注入自定义数据。看看在大多数语言的thrift库中多路复用协议是如何工作的: 它以
service:method
的形式通过网络发送方法名称。多路复用处理器打开此编码并将其传递给相应的处理器

我使用了类似的方法在方法名内对任意键/值对(如http头)进行编码

这样做的缺点是,您需要为将要使用的每个平台编写更复杂的扩展。一旦它的工作原理在不同的语言中有所不同,但一旦你弄明白了,它通常就足够简单了



这些只是我的一些想法,我相信还有其他想法。节俭的好处在于各个组件是如何相互解耦的。如果您有特殊需要,您可以根据需要将其中任何一个调出以添加特定功能。

请参阅会话管理相关问题: