dubbo服務介面本地呼叫(進入斷點)
web微服務、service微服務使用測試環境配置本地啟動後,web呼叫service介面時呼叫的是測試環境的介面,本地service介面打斷點時,不會進入本地service介面斷點,可以使用以下兩種方式實現進入本地service介面斷點
方法一:
1、在web微服務的resource目錄下增加配置檔案local-dubbo.properties,檔名可隨意命名;
1.1、在local-dubbo.properties中配置要呼叫且需要進入service介面內部斷點;
1.2、配置內容如下所示:
com.test.tz.service.api.provider.AssetPoolAssetInfoProvider=dubbo://192.168.132.80:17158
com.test.tz.service.api.provider.AssetInfoProvider=dubbo://192.168.132.80:17158
com.test.tz.service.api.provider.CustCompanyInfo=dubbo://192.168.132.80:17131
1.3、192.168.132.80:17158為對應service服務本地啟動的IP及埠;
2、在Idea中的Run/Debug Configurations的VM Options中配置local-dubbo.properties檔案目錄,內容參考如下:
-Ddubbo.resolve.file=D:\code\test-tz\test-web\src\main\resources\local-dubbo.properties
3、在application.properties檔案加上dubbo.registry.register=false防止本地service註冊到測試環境的註冊中心導致測試環境呼叫到本地介面;
缺點:需要配置需要進入斷點的service介面的每一個介面類 ,而方法二隻需要在需要進入斷點的service服務配置相同的group並啟動服務即可;
優點:本地只需要啟動需要進入斷點的service服務,呼叫鏈中不需要進入斷點的service服務本地不需要啟動依然可以呼叫到測試環境介面請求到資料,因為group和測試環境時一樣的,但是得注意加上dubbo.registry.register=false防止本地service註冊到測試環境的註冊中心導致測試環境呼叫到本地介面;
方法二:
1、修改web微服務及service微服務的application.properties檔案,修改dubbo.registry.group = registry_group_sp_service為:dubbo.registry.group = registry_group_sp_service_tz,名字可隨意命名,目的是修改本地group跟測試環境不一致,可保證呼叫的都是註冊到這個group的介面(都是你自己本地啟動的服務介面)
缺點:如果web介面或service介面呼叫鏈涉及到幾個甚至十幾個service服務時,其它service都需要配置該group並且啟動提供介面,否則呼叫鏈呼叫該介面時會無提供者且取不到資料;
優點:如果web介面或service介面呼叫鏈涉及service服務比較少時,相對於方法一會比較方便,只需要在涉及到的service中配置好相同的group並且涉及service都啟動即可完成呼叫鏈斷點,,不需要像方法一那樣要配置需要進入斷點的每個service介面類;