1. 程式人生 > >JAVA RPC (三) 之thrift序列化協議入門雜談

JAVA RPC (三) 之thrift序列化協議入門雜談

首先抱歉讓大家久等了,最近工作的原因,再加上自己維護koalas rpc利用的大部分時間,一直沒騰出空來寫這篇文章。

先放出來自研的企業級RPC框架原始碼地址,上面有使用方式和部署環境說明,說環境部署,其實只需要傻瓜式的安裝一個zookeeper就可以了。

地址:https://gitee.com/a1234567891/koalas-rpc,三分鐘一個企業級的RPC框架就誕生了。沒有那麼多繁雜的API,沒有那麼多需要踩的坑,拿來即用。完全開源

----------------------------廣告到此為止----------切切切----------------我切切切------------------------------------------

關於thrift的基本知識,這裡不做太多闡述,先說一下為什麼要用thrift。

thrift本身不光是物件序列化協議,它本身封裝了java 底層的nio(雖然這裡有bug,我在做自定義協議的時候,竟然發現低版本thrift server和client竟然不支援,後面的講解中我會寫出來,這篇文章先不講),也就是說thrift本身是協議+一套完整的基於java nio Selector rpc框架,如果有時間我會在接下來的時間裡簡單介紹一下java nio。但是這種點對點模型不適合用於實際生產中,首先對spring的支援需要自己手動去寫,對服務的動態發現需要自己通過zk,redis之類的中介軟體去維護,負載等等。扯多了。想對thrift有一定了解的朋友先移步

 https://blog.csdn.net/lk10207160511/article/details/50450541

https://www.cnblogs.com/cyfonly/p/6059374.html

https://blog.csdn.net/sunmenggmail/article/details/46818147

https://www.cnblogs.com/exceptioneye/p/4945073.html

https://blog.csdn.net/hrn1216/article/details/51306395

相信大家看完上面的文章對thrift應該會有一定的認識,雖然現在一定懵逼,這些個server模型到底是什麼意思,ractor模型到底是啥東西,netty也在用,thrift的TThreadedSelectorServer模型也在用,之後會為大家一一講解。

既然thrift 可以序列化,本身也能做RPC服務端,那麼我就想到了只要是網路傳輸,那麼服務端怎麼少了了netty(主要還是為了折騰),所以服務端打算用thrift 的TThreadedSelectorServer和netty server。