thrift namespace java com.example service Calculator { i32 add(1: i32 num1, 2: i32 num2), i32 subtract(1: i32 num1, 2: i32 num2) } shell thrift -r --gen java calculator.thrift import com.example.Calculator; public class CalculatorHandler implements Calculator.Iface { @Override public int add(int num1, int num2) { return num1 + num2; } @Override public int subtract(int num1, int num2) { return num1 - num2; } public static void main(String[] args) { CalculatorHandler handler = new CalculatorHandler(); Calculator.Processor<CalculatorHandler> processor = new Calculator.Processor<>(handler); Http.Server server = Http.server().serve(":8080", new Http.Muxer().mux(processor)); Await.ready(server); } } import com.example.Calculator; import com.twitter.finagle.Thrift; public class CalculatorClient { public static void main(String[] args) { Calculator.ServiceIface client = Thrift.newIface("localhost:8080", Calculator.ServiceIface.class); int result = client.add(10, 5); System.out.println("Result: " + result); } } ServerBuilder.safeBuild(() -> Http.server().withLabel("calculator-server") .withRequestTimeout(Duration.fromSeconds(30)) .withTransport.tls() .withAdmissionControl .withSessionPooling()) .withTracer .withMonitor .withLogging .withStatsReceiver) .withBudget .withBindingAddress .serve("localhost:8080", new Http.Muxer().mux(processor)); Thrift.newIface("localhost:8080", Calculator.ServiceIface.class, ClientBuilder.safeBuild(() -> Http.client().withSessionPooling() .withSessionQualifier .withConnectionLimit .withTransport.tls() .withAdmissionControl .withSessionPooling() .withStatsReceiver) .withTracer .withMonitor .withLogging .withBudget .withLabel .withResponseClassifier);


上一篇:
下一篇:
切换中文