分享

thirft使用TSimpleServer模式

 yliu277 2019-03-22

TSimpleServer的工作模式只有一个工作线程,循环监听新请求的到来并完成对请求的处理,只用于测试

TSimpleServer的工作模式采用最简单的阻塞IO,实现方法简洁明了,便于理解,但是一次只能接收和处理一个socket连接,效率比较低,主要用于演示Thrift的工作过程,在实际开发过程中很少用到它。

这里写图片描述

服务端代码:

private static void simpleServer() throws TTransportException { TServerSocket serverSocket=new TServerSocket(8888); ISayHello.Iface sayHelloService = new SayHelloImpl(); Processor<Iface> processor = new ISayHello.Processor<Iface>(sayHelloService); TServer.Args serverParams=new TServer.Args(serverSocket); serverParams.protocolFactory(new TBinaryProtocol.Factory()); serverParams.processor(processor); TServer server=new TSimpleServer(serverParams); //简单的单线程服务模型,常用于测试 server.serve(); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

客户端代码:

private static void socket() throws Exception {
        TTransport transport = new TSocket('localhost', 8888);
        TProtocol protocol = new TBinaryProtocol(transport);
        ISayHello.Client client = new ISayHello.Client(protocol);
        transport.open();
        int i = 5;
        while (i > 0) {
            System.out.println('client调用返回:'   client.sayHello('张三'));
            i--;
        }
        transport.close();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多