我有一个应用程序,它包含一个Java Thrift异步客户端,使用环回接口(localhost)通过TCP与Python / Twisted Thrift异步服务器进行通信。
我想使用UNIX域套接字而不是TCP套接字来提高吞吐量,但是我找不到适合Java的异步(非阻塞)UNIX域套接字实现来与Thrift一起使用。
我有这个Python / Twisted TCP Thrift服务器:
handler = ThriftServiceHandler(am)
processor = ThriftServiceHandler.Processor(handler)
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
reactor.listenTCP(PORT, TTwisted.ThriftServerFactory(processor, pfactory), interface="127.0.0.1")
我设法创建了一个异步UNIX域套接字Thrift服务器:
handler = ThriftServiceHandler(am)
processor = ThriftServiceHandler.Processor(handler)
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
reactor.listenUNIX("thrift.sock", TTwisted.ThriftServerFactory(processor, pfactory))
目前我有这个Java客户端:
clientManager = new TAsyncClientManager();
factory = new TBinaryProtocol.Factory();
socket = new TNonblockingSocket("127.0.0.1", thriftConstants.PORT);
client = new ThriftService.AsyncClient(this.factory, this.clientManager, this.socket);
但我不知道如何进行Java客户端实现。我查看了使用https://github.com/jnr/jnr-unixsocket和https://github.com/kohlschutter/junixsocket,但我无法使用Thrift的Java AsyncClient。任何帮助,将不胜感激。
我使用的是最新版本的Thrift(0.9.2)。