使用Thrift讓Python為Java提供服務


Thrift是基於TCP的,谷歌的GRPC是基於HTTP的。Thrift和GRPC都是比直接寫個web接口進行調用更完美的方式,最明顯的一點就是:我們可以定義結構體,避免了手動解析的過程。

但是,在將Python作為Thrift服務端,Java作為客戶端時,有一個天坑:始終都是connection refused。

windows下查看端口占用:netstat -aon|findstr "8091"。會發現服務正常啟動了。
然而多次運行python服務端,竟然不報“端口已占用”的錯誤。

錯誤原因是:Python使用了TCPV6,Java使用的是TCP。
改成127.0.0.1解決問題,看來以后再也不要用localhost了,一律使用127.0.0.1

Python:  transport = TSocket.TServerSocket(host="127.0.0.1", port = 9091)
Java:  transport = new TSocket("127.0.0.1", 9091);

參考資料
https://stackoverflow.com/questions/16760741/apache-thrift-python-java-connection-refused


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM