Memcached 協議

功能描述

基於 memcached 實作的 RPC 協定。支援 2.3.0 及以上版本。

Memcached 是一個高效能的 KV 快取伺服器。

使用場景

減輕資料庫壓力,提高互動速度等。

使用方法

導入依賴

從 Dubbo 3 開始,Memcached 協定不再內嵌於 Dubbo 中,需要單獨引入一個獨立的 模組

<dependency>
    <groupId>org.apache.dubbo.extensions</groupId>
    <artifactId>dubbo-rpc-memcached</artifactId>
    <version>1.0.0</version>
</dependency>

註冊 memcached 服務的地址

RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();
Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://10.20.153.10:2181"));
registry.register(URL.valueOf("memcached://10.20.153.11/com.foo.BarService?category=providers&dynamic=false&application=foo&group=member&loadbalance=consistenthash"));

客戶端引用

不需要知道 Memcached 的地址

客戶端使用

<dubbo:reference id="cache" interface="java.util.Map" group="member" />

或者點對點直連

<dubbo:reference id="cache" interface="java.util.Map" url="memcached://10.20.153.10:11211" />

也可以使用自訂介面

<dubbo:reference id="cache" interface="com.foo.CacheService" url="memcached://10.20.153.10:11211" />

其中「p:xxx」是 spring 的標準 p 標籤

<dubbo:reference id="cache" interface="com.foo.CacheService" url="memcached://10.20.153.10:11211" p:set="putFoo" p:get="getFoo" p:delete=" removeFoo" />

如果方法名稱與 memcached 的標準方法名稱不同,則需要配置映射關係;

建議方法名稱與 memcached 的標準方法名稱相同,即:get(key), set(key, value), delete(key)。


最後修改日期:2023 年 2 月 22 日:合併重構網站 (#2293) (4517e8c1c9c)