手写RPC调用的client的原因

来源:3-6 开发用户EdgeService_A

Lei_Hsia

2020-03-19

老师,之前message-thrift-service的client端,是直接thrift自动生成的message-thrift-java-service-api得到client端,这里为了调用user-thrift-service, 为什么需要手写client而不像之前那样自动生成?毕竟这个edge service和user-thrift-service之间还是RPC调用,应该还是可以自动生成stub

写回答

1回答

刘果国

2020-03-20

你好,不是特别明白你的点,业务逻辑的代码肯定是要自己写的呀。生成的都是机械式的代码。

0
2
刘果国
回复
Lei_Hsia
你好,调用user-thrift-service和message-service都是差不多的写法呀: public UserService.Client getUserService() { return getService(serverIp, serverPort, ServiceType.USER); } public MessageService.Client getMessasgeService() { return getService(messageServerIp, messageServerPort, ServiceType.MESSAGE); } public T getService(String ip, int port, ServiceType serviceType) { TSocket socket = new TSocket(ip, port, 3000); TTransport transport = new TFramedTransport(socket); try { transport.open(); } catch (TTransportException e) { e.printStackTrace(); return null; } TProtocol protocol = new TBinaryProtocol(transport); TServiceClient result = null; switch (serviceType) { case USER: result = new UserService.Client(protocol); break; case MESSAGE: result = new MessageService.Client(protocol); break; } return (T)result; }
2020-03-23
共2条回复

Docker+Kubernetes(k8s)微服务容器化实践

从开发到编排,快速,完整,深入的掌握微服务

2607 学习 · 607 问题

查看课程