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)