soul閘道器 17 sofa外掛程式

2021-10-18 19:33:51 字數 1341 閱讀 5581

之前的筆記裡面介紹過soul閘道器的dubbo外掛程式,它是靠dubbo的泛化呼叫來實現將http協議轉成dubbo協議。

這次來看下soul閘道器的sofa外掛程式,首先把soul-admin、sofa示例專案、soul-bootstrap依次啟動起來,看下效果。

在soul-admin裡面開啟sofa外掛程式

soul-examples-sofa示例專案啟動之後,在soul-admin管理後台就可以看到sofa外掛程式裡面已經有了selector和rule。

啟動soul-bootstrap,啟動之前確保pom.xml裡面有以下依賴:

com.alipay.sofa

sofa-rpc-all

$ org.dromara

soul-spring-boot-starter-plugin-sofa

$

試一下呼叫請求

我們去看一下sofaplugin裡面的具體實現,看到sofaplugin是繼承自abstractsoulplugin的,那我們直接去找它的doexecute方法。可以看到裡面的邏輯和dubbo外掛程式差不多。

那我們再去看下sofa外掛程式裡面的sofaproxyservice.genericinvoker方法的具體邏輯。

這……大致瞄了一眼,看上去跟dubbo外掛程式使用泛化呼叫差不多。

去sofa的官網看了一下,原來sofa是出自螞蟻金服,sofa中的rpc部分源於阿里內部的hsf,而hsf當前是pk掉了dubbo 1.x的。

看一下sofa官方上關於泛化呼叫與dubbo的泛化呼叫的比較,dubbo的泛化呼叫需要服務提供方也支援泛化,而sofa則不需要服務提供方對泛化呼叫做出任何改變,這是sofa泛化區別於其他rpc泛化的關鍵。

今天對soul閘道器sofa外掛程式的學習就到這裡了,有時間的話會研究一下泛化呼叫的原理。

soul閘道器學習sofa 外掛程式體驗(下)

首先回憶下程式沒有進入sofaplugin的可能原因 外掛程式狀態沒有開啟直接沒有執行直接 首先確認了狀態已經開啟,debug發現我的外掛程式鏈裡面並沒有sofa外掛程式 懷疑沒有初始化sofaplugin 再次看了波官網檢查了下閘道器日誌 發先輸出日誌裡面sofa外掛程式沒有被載入 找到原因 在閘...

Soul閘道器中的Sofa外掛程式執行原理(二)

本文的分析思路和之前的apache dubbo是一樣的。public mono genericinvoker final string body,final metadata metadata,final serverwebexchange exchange throws soulexception...

soul閘道器原始碼解析 sofa接入 sofa外掛程式

執行結果 遇到的問題 需要啟動乙個zookeeper 單機就行了 檢查下 soul bootstrap 的pom檔案下是否存在以下配置 com.alipay.sofa sofa rpc all 5.7.6 org.apache.curator curator client 4.0.1 org.apa...