在 Data Grid 中使用 Memcached 协议端点
使用 Data Grid Memcached 端点与远程缓存交互
摘要
Red Hat Data Grid 复制链接链接已复制到粘贴板!
Data Grid 是一个高性能分布式内存数据存储。
- 无架构数据结构
- 将不同对象存储为键值对的灵活性。
- 基于网格的数据存储
- 旨在在集群中分发和复制数据。
- 弹性扩展
- 动态调整节点数量,以便在不中断服务的情况下满足需求。
- 数据互操作性
- 从不同端点在网格中存储、检索和查询数据。
Data Grid 文档 复制链接链接已复制到粘贴板!
红帽客户门户网站中提供了 Data Grid 的文档。
Data Grid 下载 复制链接链接已复制到粘贴板!
访问红帽客户门户上的 Data Grid 软件下载。
您必须有一个红帽帐户才能访问和下载数据中心软件。
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 Memcached Server 复制链接链接已复制到粘贴板!
Data Grid 服务器分布包含一个用于实现 Memcached 文本 和二进制 协议的服务器模块。这允许 Memcached 客户端连接一个或多个由 Data Grid 支持的 Memcached 服务器。这些服务器可以独立使用 Memcached,每个服务器都独立运行,且不会与其他服务器进行通信。它们也可以被集群化,服务器可以将其内容复制或分发到其他由 Data Grid 支持的 Memcached 服务器,从而为客户端提供故障转移功能。
在单端口端点上默认启用 Memcached 端点。Memcached 客户端连接将被自动检测并路由到内部连接器。
1.1. 客户端编码 复制链接链接已复制到粘贴板!
Memcached 文本协议假定客户端读取和写入的数据值是原始字节。
Memcached 客户端无法协商数据类型从服务器获取数据或以不同格式发送数据。可以选择性地将服务器配置为处理使用特定 Media Type 编码的值。通过在 memcached-connector 元素中设置 client-encoding 属性,服务器将返回配置的格式的内容,客户端也可以以此格式发送数据。
当从多个远程端点(如 Rest、HotRod 或 Memcached)访问单个缓存时,client-encoding 很有用。这也允许用户自定义对 Memcached 文本客户端的响应和请求。有关端点间互操作性的详情,请查看端点互操作性文档。
1.2. 协议检测 复制链接链接已复制到粘贴板!
Data Grid Memcached 连接器通过将 memcached-connector 元素中的 protocol 属性设置为 TEXT、BINARY 和 AUTO 之一来支持手动和自动协议配置。自动检测取决于 Memcached 连接器是否处于专用的套接字绑定上,或者是单个端口端点的一部分。在单一端口端点中检测文本协议客户端需要身份验证,以便从其他协议取消请求。
1.3. 安全性 复制链接链接已复制到粘贴板!
Data Grid Memcached 连接器支持文本和二进制协议的身份验证。由于这两种变体以不同的方式实施身份验证,因此支持的机制依赖于所使用的协议。
1.3.1. 文本协议 复制链接链接已复制到粘贴板!
Memcached 文本协议中的身份验证是通过一个初始 set 命令执行的,其中键被忽略,值是用户名和由空格分隔的密码的连接。此身份验证方案需要一个支持纯文本的安全域。
1.3.2. 二进制协议 复制链接链接已复制到粘贴板!
Memcached 二进制协议中的身份验证是通过专用操作执行的,它会包装 SASL 质询/响应方案。此身份验证方案适用于所有 Data Grid 安全域。
1.3.3. 全部刷新 复制链接链接已复制到粘贴板!
即使在集群环境中,flush_all 命令只清除调用的 Data Grid Memcached 服务器。没有尝试将此 flush 传播到集群中的其他节点。这样做的目的是,可以使用 Data Grid Memcached 服务器来重现延迟用例的 flush_all。将延迟传递给 flush_all 的目的是在不同时间清除不同的 Memcached 服务器,因此避免因为所有 Memcached 服务器都为空,避免所有 Memcached 服务器都带有请求过载数据库。如需更多信息,请参阅有关 flush_all的 Memcached 文本协议部分。
1.4. 不支持的功能 复制链接链接已复制到粘贴板!
本节详细介绍了基于 Data Grid 的 Memcached 实现目前不支持的 Memcached 文本协议功能。
1.4.1. 单个统计 复制链接链接已复制到粘贴板!
原始 Memcached 实施(基于 C/C++)和 Data Grid 实现(基于 Java)之间存在不同。有一些不支持的一般目的统计。对于这些不支持的统计数据,Data Grid Memcached 服务器 始终返回 0。
不支持的统计信息
- pointer_size
- rusage_user
- rusage_system
- bytes
- curr_connections
- total_connections
- connection_structures
- auth_cmds
- auth_errors
- limit_maxbytes
- threads
- conn_yields
- 重新声明
统计设置
不支持统计设置。
使用参数参数设置
Data Grid Memcached 服务器不支持将任何参数传递给 stats 命令。如果传递了任何参数,Data Grid Memcached 服务器通过 CLIENT_ERROR 进行响应。
删除冻结时间参数
因为 Memcached 不再遵循 delete 命令的可选的 hold 时间参数,所以基于 Data Grid 的 Memcached 服务器不会实现该功能。
详细程度命令
不支持 verbosity 命令,因为无法简化 Data Grid 日志记录来单独定义日志级别。
meta 协议
不支持 Memcached 1.6 中引入的 Memcached meta 协议。