W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在 Dubbo 中緩存 ReferenceConfig
?ReferenceConfig
?實例很重,封裝了與注冊中心的連接以及與提供者的連接,需要緩存。否則重復(fù)生成 ?ReferenceConfig
?可能造成性能問題并且會有內(nèi)存和連接泄漏。在 API 方式編程時,容易忽略此問題。
因此,自 ?2.4.0
?版本開始, dubbo 提供了簡單的工具類 ?ReferenceConfigCache
?用于緩存 ?ReferenceConfig
?實例。
使用方式如下:
ReferenceConfig<XxxService> reference = new ReferenceConfig<XxxService>(); reference.setInterface(XxxService.class); reference.setVersion("1.0.0"); ...... ReferenceConfigCache cache = ReferenceConfigCache.getCache(); // cache.get方法中會緩存 Reference對象,并且調(diào)用ReferenceConfig.get方法啟動ReferenceConfig XxxService xxxService = cache.get(reference); // 注意! Cache會持有ReferenceConfig,不要在外部再調(diào)用ReferenceConfig的destroy方法,導(dǎo)致Cache內(nèi)的ReferenceConfig失效! // 使用xxxService對象 xxxService.sayHello();
消除 Cache 中的 ?ReferenceConfig
?,將銷毀 ?ReferenceConfig
?并釋放對應(yīng)的資源。
ReferenceConfigCache cache = ReferenceConfigCache.getCache(); cache.destroy(reference);
缺省 ?ReferenceConfigCache
?把相同服務(wù) Group、接口、版本的 ?ReferenceConfig
?認(rèn)為是相同,緩存一份。即以服務(wù) Group、接口、版本為緩存的 Key。
可以修改這個策略,在 ?ReferenceConfigCache.getCache
? 時,傳一個 ?KeyGenerator
?。詳見 ?ReferenceConfigCache
?類的方法。
KeyGenerator keyGenerator = new ... ReferenceConfigCache cache = ReferenceConfigCache.getCache(keyGenerator );
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: