Feign+Ribbon、Dubbo、gRPC的選型對比

1.場景

在微服務開發中,在調用不同模塊之間的數據時,經常回去調用他的http接口,總不能這樣,RPC框架,服務在代碼裏就調用一個interface的接口,底層直接讓RPC框架發送請求到對應的服務器上去

2. feign+ribbon

  • spring cloud netflix技術棧,RPC調用,用的就是feign框架+ribbon做負載均衡,暴露出來的服務接口,就是最最稀鬆平常的基於spring mvc寫的controller暴露出來的一些http接口,定義一個http的url地址
  • 通過feign框架進行RPC調用:String result = serviceA.hello(name),會按照http協議來組裝你的請求數據,數據格式都是按照http協議裏的請求來做的,http請求還還必須做一個序列化,序列化成二進制的字節流,通過底層的tcp連接發送過去
  • 本質上服務A的部署是基於tomcat去進行部署的,tomcat會監聽你指定的端口號,當別人要發送http請求給你的時候,首先必須跟tomcat建立tcp網絡連接,發送http請求給tomcat,tomcat收到之後,解析出來這個http請求,交給你的spring mvc寫的controller來進行處理

3.dubbo

  • dubbo自己使用的一套協議,自定義協議,也可以是別的協議,肯定不是http協議,去組裝請求數據,然後做一個序列化,二進制字節數組或者是字節流,都可以,通過底層的網絡連接把請求數據發送過去就可以了

  • ServiceA這個類,調用他裏面的hello()這個方法,傳入name這個參數,獲取result這個返回值,然後通過網絡連接把響應數據按照自己的協議封裝,序列化,通過網絡連接發送給服務B就可以了

gRPC

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章