当前位置: 首页 > 后端技术 > Java

勤俭节约学习入门笔记

时间:2023-04-02 09:44:48 Java

Thrift学习入门笔记参考链接:Thrift入门安装thrift命令:brewinstallthriftimportmavendependencyorg.apache.thriftlibthrift0.16.0写入thrift文件命名空间javathrift.generatedtypedefi16shorttypedefi32inttypedefi64longtypedefstringStringstructPerson{1:optionalStringusername,2:optionalintage,3:optionalboolmarried}exceptionDataException{1:optionalStringmessage,2:optionalStringcallStack,3:optionalStringcode}servicePersonService{PersongetPersonByName(1:requiredStringname)throws(1:DataExceptione);voidsavePerson(1:requiredPersonp)throws(1:DataExceptione);}生成代码thrift--genjava./resources/data.thrift├──gen-java│└──节俭│└──生成│├──DataException.java│├──Person.java│└──PersonService.java新建PersonServiceImpl实现PersonService接口。publicclassPersonServiceImplimplementsPersonService.Iface{@OverridepublicPersongetPersonByName(字符串名称)抛出DataException,TException{System.out.println(“----->>getPersonByName<<--------”);Personp1=newPerson();p1.setAge(23);p1.setMarried(Boolean.TRUE);p1.setUsername("张三");返回p1;}@OverridepublicvoidsavePerson(Personp)throwsDataException,TException{System.out.println("----savePerson-----");System.out.println(p.getAge());System.out.println(p.getUsername());System.out.println(p.isMarried());}}编写服务端importcom.demo.thrift.PersonService;importcom.demo.thrift.PersonServiceImpl;importorg.apache.thrift.TProcessorFactory;导入org.apache.thrift.protocol.TCompactProtocol;导入org.apache.thrift.server.THsHaServer;导入org.apache.thrift.transport.TNonblockingServerSocket;导入org.apache.thrift.transport.layered.TFramedTransport;publicclassMyServer{publicstaticvoidmain(String[]args)throwsException{TNonblockingServerSocketsocket=newTNonblockingServerSocket(8899);THsHaServer.Argsargs1=newTHsHaServer.Args(socket).minWorkerThreads(2).maxWorkerThreads(4);PersonService.Processorprocessor=newPersonService.Processor<>(newPersonServiceImpl());args1.protocolFactory(newTCompactProtocol.Factory());args1.transportFactory(newTFramedTransport.Factory());args1.processorFactory(新TProcessorFactory(处理器));THsHaServertHsHaServer=newTHsHaServer(args1);System.out.println("服务端已启动:8899");tHsHaServer.serve();}}编写客户端importcom.demo.thrift.Person;importcom.demo.thrift.PersonService;importorg.apache.thrift.protocol.TCompactProtocol;importorg.apache.thrift.protocol.TProtocol;importorg.apache.thrift.transport.TSocket;导入org.apache.thrift.transport.TTransport;导入org.apache.thrift.transport.TTransportException;导入org.apache.thrift.transport.layered.TFramedTransport;公共类MyClient{publicstaticvoidmain(String[]args)抛出TTransportException{TTransporttransport=newTFramedTransport(newTSocket("localhost",8899),600);TProtocol协议=newTCompactProtocol(传输);PersonService.Clientclient=newPersonService.Client(协议);尝试{transport.open();Personzhang_san=client.getPersonByName("张三");System.out.println(zhang_san.getAge());System.out.println(zhang_san.getUsername());系统输出文件ntln(zhang_san.isMarried());Personp1=newPerson();p1.setAge(21);p1.setMarried(Boolean.FALSE);p1.setUsername("lisi");client.savePerson(p1);}catch(Exceptione){e.printStackTrace();}最后{transport.close();}}}超过