接着之前的项目上创建一个文件夹thrift,在str目录下与main文件夹平级:
在idea中添加插件使用,它的插件相比来说比protobuf的插件要强大很多:
创建文件data.thrift里面包含其中设置命令空间为java路径
将thrift里面的数据类型定义成java类型,这样看起来比较舒服,而且使用起来也比较方便,现在对比发现相比之前那个protobuf来说好用多了o(* ̄︶ ̄*)o
定义结构体 ,写起来跟java没啥区别了
定义异常:
注意几点:如果没有写optional的话,默认是optional;
在thrift中没有日期类型,要存储日期只能使用String字符串;
定义方法,其写法和java非常相似,使用required相当于一个有参方法
生产thrift相关java代码:
将thrift的代码复制到java目录下,方便使用:
引入相关依赖:
这里提醒一下大家,没必要去看那些生产的java代码,直接看.thrift文件就可以了,直接了当,而且数据本身更具有可读性。
创建一个类,然后实现来自thrift中java代码中的接口,这种代码敲起来的感觉和写java的service层那里感觉很像
服务端:
创建主函数来调用ThriftServer.java
其中NonblockingServerSocket是一个非阻塞式的socket
高可用的server
简单的和protobuf对比理解,相当于就是一个加入了很多处理器,对数据进行处理
客户端:
服务端用的是TFrameTransport,那客户端也得使用一样的:
600毫秒为超时时间;
太晚了,我就不在细讲了
运行服务端:
一直处于一个运行的状态;
运行客户端:
服务端 :
这样一来就解决了一个很大的问题,两台计算机远程调用彼此之间的信息。