Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

接上一个程序:

加入python的命名空间

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

 生成python相关代码:

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

生成的python代码:

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

安装python相关的依赖

创建python项目,以及加入Thrift生成的代码:

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

客户端的代码:

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

运行java服务端,python客户端

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

这是一个很激动人心的时刻,实现了跨语言传输数据。不过这里有一个编码问题,之前我在python里面写的是中文,因为编码问题又改为了英文。 

解决办法:

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

现在我们反过来,使用python作为服务端,分别向python客户端,java客户端发送数据

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

python的服务器端

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

启动python服务端:

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

java服务器启动:

Netty的深入浅出--15.通过Thrift实现python和java之间的RPC调用

总结:

为什么我文章标题讲的是netty的深入浅出,但是为什么却很大篇幅的在讲解RPC呢?

其实在很多情况是,数据网络间的通过 大部分使用的是http传输,但是如果在内网,分布式架构上的话,你觉得http能够解决这些问题吗?很多时候还是需要像protobuf和thrift这种框架来完成数据之间的通信。

我们经过之前几个项目的比较能够发现,protobuf的IDL文件通过结合netty才能比较好的实现序列化和反序列化,但是Thrift就不通过,我们使用的过程中发现,它本身就能够很好的通过IDL文件将数据在客户端与服务端之间进行相互传递。