Java面試-Dubbo SPI&String&Cache

1、Dubbo 配置文件是如何加載到 Spring 中的?

Spring 容器在啓動的時候,會讀取到 Spring 默認的一些 schema 以及 Dubbo 自 定義的 schema,每個 schema 都會對應一個自己的 NamespaceHandler, NamespaceHandler 裏面通過 BeanDefinitionParser 來解析配置信息並轉化爲 需要加載的 bean 對象!

2、Dubbo SPI 和 Java SPI 區別?

JDK SPI

JDK 標準的 SPI 會一次性加載所有的擴展實現,如果有的擴展喫實話很耗時,但 也沒用上,很浪費資源。

所以只希望加載某個的實現,就不現實了

DUBBO SPI

1,對 Dubbo 進行擴展,不需要改動 Dubbo 的源碼

2,延遲加載,可以一次只加載自己想要加載的擴展實現。
3,增加了對擴展點 IOC 和 AOP 的支持,一個擴展點可以直接 setter 注入其 它擴展點。
4,Dubbo 的擴展機制能很好的支持第三方 IoC 容器,默認支持 Spring Bean。

3、Dubbo 支持分佈式事務嗎?

目前暫時不支持,可與通過 tcc-transaction 框架實現
介紹:tcc-transaction 是開源的 TCC 補償性分佈式事務框架
Git 地址:
https://github.com/changmingxie/tcc-transaction TCC-Transaction 通過 Dubbo 隱式傳參的功能,避免自己對業務代碼的入侵。

3、Dubbo 可以對結果進行緩存嗎?

爲了提高數據訪問的速度。Dubbo 提供了聲明式緩存,以減少用戶加緩存的工作 量

<dubbo:reference cache="true" /> 其實比普通的配置文件就多了一個標籤 cache="true"

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