我正在为我的Thrift应用程序实现服务发现。服务器将自己的地址声明到ZooKeeper中的已知路径,而客户端维护此路径的本地缓存,它们使用该缓存将请求动态路由到服务器实例(类似于Curator Service Discovery)。
每个客户端是否也应该缓存连接到物理服务器所需的TTransport?这样做可以避免为服务器上的后续请求重新打开TTransport的成本。但是,我担心缓存TTransport将意味着我必须保持与集群中每个服务器的开放连接,这可能会降低我的客户端和服务器的性能。
缓存打开的TTransport连接是安全的,还是每次发出请求时重新协商连接更好?
编辑:I went ahead and implemented service discovery with TTransport caching,但我仍然不确定这是不是正确的方法。我很想知道这是不是正确的方法,或者是否有更好的解决方案。
发布于 2017-10-08 08:38:23
如果不保持连接打开,那么缓存TTransport实例就没有意义了。
https://stackoverflow.com/questions/46508599
复制相似问题