- 首页
- 作品
- Dubbo 教程
- 13.7. memcached://
13.7. memcached://
基于 memcached 1 实现的 RPC 协议。
提示:2.3.0 以上版本支持
注册 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"));
在客户端引用
- 在客户端使用:
<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" />
- 方法名建议和 Memcached 的标准方法名相同,即:get(key), set(key, value), delete(key)。
- 如果方法名和 Memcached 的标准方法名不相同,则需要配置映射关系:
<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 是一个高效的 KV 缓存服务器
- 不需要感知 Memcached 的地址
- 其中 “p:xxx” 为 Spring 的标准 p 标签
下一节:RMI 协议采用 JDK 标准的 java.rmi.* 实现,采用阻塞式短连接和 JDK 标准序列化方式。
注意:如果正在使用 RMI 提供服务给外部访问,同时应用里依赖了老的 common-collections 包的情况下,存在反序列化安全风险。