【发布时间】:2014-09-22 18:13:10
【问题描述】:
前几天我刚开始与 Thrift 合作开发项目原型,我有一个设计问题:
假设我有一组三个 Thrift 服务,它们都将在同一台服务器上运行;例如:TenantService、UserAccountService 和 AuthService。单个服务器将在机器集群中运行并托管所有这些服务。
UserAccounts 属于租户,因此当在 UserAccountService 上调用 Handler 方法时,我需要查询 TenantService 以检索有关租户的信息。在不同的情况下,我可能需要从 AuthService 咨询 UserAccountService。
在单个服务器上的处理程序之间进行通信的最佳实践/机制是什么?是否只是将必要的处理程序传递给另一个处理程序,这样如果 AuthService 依赖于 UserAccountService 那么我应该在构造 AuthHandler 时将 UserAccountHandler 实现传递给 AuthHandler?
如果这种方法不好,我应该将其他服务的客户端传递给适当的处理程序吗?有没有不需要出网的TTransport;例如本地内存 TTransport?
谢谢!
【问题讨论】:
标签: thrift