在 Memcached 客户端库中添加 Auto Discovery
自动发现功能的配置信息以冗方式存储在每个 Memcached 集群节点中。客户端应用程序可以查询任何缓存节点并获取集群中所有节点的配置信息。
应用程序完成此操作采用的方式取决于缓存引擎版本:
如果缓存引擎版本为 1.4.14 或更高版本,请使用
config命令。如果缓存引擎版本 低于 1.4.14,请使用
get AmazonElastiCache:cluster命令。
这两个命令得到的输出结果是相同的,并且在下面的 输出格式 部分中加以描述。
缓存引擎版本 1.4.14 或更高版本
对于缓存引擎版本 1.4.14 或更高版本,请使用 config 命令。此命令已被 ElastiCache 添加至 Memcached ASCII 和二进制协议,并在 ElastiCache Cluster Client 中得以执行。如果您想将 Auto Discovery 与其他客户端库一同使用,那么将需要对此库进行扩展,以支持 config 命令。
注意
下面的文档与 ASCII 协议有关;然而,config 命令支持 ASCII 和库。如果您想使用二进制协议添加 Auto Discovery 支持文件,请参阅 ElastiCache Cluster Client 的源代码
语法
config [sub-command] [key]
选项
| 名称 | 描述 | 必需 |
|---|---|---|
sub-command |
用于与缓存节点互动的子命令。对于 Auto Discovery,这个子命令为 |
是 |
key |
存储集群配置的密钥。对于 Auto Discovery,这个密钥的名称为 |
是 |
如要获取集群配置信息,请使用下述命令:
config get cluster
缓存引擎版本 1.4.14 或更低版本
如要获取集群配置信息,请使用下述命令:
get AmazonElastiCache:cluster
注意
不要篡改“AmazonElastiCache:cluster”密钥,因为此处为集群配置信息所在的位置。如果您确实覆盖了这个密钥,那么在 ElastiCache 自动且正确地更新配置信息之前,客户端可能会在一小段时间内(不超过 15 秒)出现错误配置的情况。
输出格式
无论您使用 config get cluster 或 get
AmazonElastiCache:cluster,回复都由两行组成:
-
配置信息的版本号。每当在集群中添加一个节点或者从集群中移除一个节点时,版本号都会增加一个数。
-
一份缓存节点列表。列表中的各个节点都由 用户名|IP 地址|端口 组加以表示,并且每个节点都由一个空格加以限定。
回车和换行字符 (CR + LF) 出现在每行末尾处。数据行末尾包含一个换行字符 (LF),其中添加了 CR + LF。配置版本行以 LF 终止,无需 CR。
包含三个节点的集群的表示方式如下:
configversion\n
hostname|ip-address|port hostname|ip-address|port hostname|ip-address|port\n\r\n
每个节点都会用 CNAME 和私有 IP 地址显示。CNAME 将会始终加以显示;如果私有 IP 地址不可用,则不会显示;然而,管道字符“|”仍会被印出。
例
下面介绍了一个示例,即当您询问配置信息时返回的有效负载:
CONFIG cluster 0 136\r\n
12\n
myCluster.pc4ldq.0001.use1.cache.amazonaws.com|10.82.235.120|11211 myCluster.pc4ldq.0002.use1.cache.amazonaws.com|10.80.249.27|11211\n\r\n
END\r\n注意
-
第二行表示迄今为止已修改配置信息 12 次。
-
在第三行中,节点列表按照主机名的字母顺序进行排序。这种排序可能与您目前在客户端应用程序中采用的顺序不同。