我正在为我的Thrift应用程序实现服务发现。服务器将自己的地址自己发布到ZooKeeper中的已知路径,客户端维护此路径的本地缓存,用于将请求动态路由到服务器实例(类似于Curator Service Discovery)。
每个客户端是否还要缓存连接到物理服务器所需的TTransport
?这样做可以避免为服务器上的后续请求重新打开TTransport
的成本。但是,我担心缓存TTransport
意味着我必须保持与群集中每个服务器的开放连接,这可能会降低我的客户端和服务器的性能。
缓存开放TTransport
连接是否安全,或者每次发出请求时是否更好地重新协商连接?
编辑:I went ahead and implemented service discovery with TTransport
caching,但我仍然不确定这是否是正确的做法。很想知道这是否是正确的方法,或者是否有更好的解决方案。
答案 0 :(得分:0)
如果您没有打开连接,则缓存TTransport实例是没有意义的。