如何在 java 服务器中使用分层节俭传输

How to use layered thrift transports in a java server

我想在彼此之上使用以下节俭传输。

我只能在一台服务器上设置1个传输工厂,但实际上,我必须设置zlib工厂和framed工厂。例如:

new TServer.Args(new TServerSocket(port)).transportFactory(new TFramedTransport.Factory());

如何在 Java 的服务器端设置两种传输方式?

您可以创建一个自定义工厂来创建嵌套传输:

  public class MyNestedFactory extends TTransportFactory {
    @Override
    public TTransport getTransport(TTransport base) {
      return new TZlibTransport(new TFramedTransport(base));
    }
  }

然后您可以将此工厂传递给您的服务器参数:

new TServer.Args(new TServerSocket(port))
              .transportFactory(new MyNestedFactory())