第 3 章 Data Grid 服务器端点
Data Grid 服务器端点提供对 Hot Rod 和 REST 协议的缓存管理器的客户端访问。
3.1. Data Grid 服务器端点
3.1.1. 热 Rod
热 Rod 是一种二进制 TCP 客户端-服务器协议,旨在提供更快的数据访问,并比基于文本的协议提高性能。
Data Grid 提供 Java、C++、C#、Node.js 和其他编程语言的 Hot Rod 客户端库。
拓扑缓存
Data Grid 使用拓扑缓存为客户端提供集群视图。拓扑缓存包含将内部 JGroups 传输地址映射到公开 Hot Rod 端点的条目。
当客户端发送请求时,Data Grid 服务器将请求标头中的拓扑 ID 与缓存中的拓扑 ID 进行比较。如果客户端有旧的拓扑 ID,Data Grid 服务器会发送新的拓扑视图。
集群拓扑视图允许 Hot Rod 客户端立即检测节点加入和离开的时间,从而启用动态负载平衡和故障转移。
在分布式缓存模式中,一致的哈希算法也使 Hot Rod 客户端请求直接路由到主要所有者。
3.1.2. REST
Data Grid 会公开一个 RESTful 接口,允许 HTTP 客户端访问数据、监控和维护集群,以及执行管理操作。
您可以使用标准 HTTP 负载均衡器为客户端提供负载均衡和故障转移功能。但是,HTTP 负载均衡器会维护静态集群视图,并在集群拓扑更改时需要手动更新。
3.1.3. RESP
Data Grid 提供 RESP3 协议的实施。
RESP 连接器支持 Redis 命令的子集。
3.1.4. Memcached
Data Grid 为远程客户端访问提供 Memcached 文本和二进制协议的实现。
Data Grid Memcached 端点支持使用复制和分布式缓存模式的集群。
有些 Memcached 客户端实现(如 Cache::Memcached Perl 客户端)可以使用集群拓扑更改时需要手动的 Data Grid 服务器地址列表提供负载均衡和故障转移检测功能。
3.1.5. 端点协议的比较
热 Rod | HTTP / REST | Memcached | RESP | |
---|---|---|---|---|
topology-aware | Y | N | N | N |
hash-aware | Y | N | N | N |
Encryption | Y | Y | Y | Y |
身份验证 | Y | Y | Y | Y |
条件 ops | Y | Y | Y | N |
批量操作 | Y | N | Y | Y |
Transactions | Y | N | N | N |
监听器 | Y | N | N | Y |
查询 | Y | Y | N | N |
执行 | Y | N | N | N |
跨站点故障切换 | Y | N | N | N |
3.1.6. 热 Rod 客户端与 Data Grid 服务器的兼容性
借助数据网格服务器,您可以将 Hot Rod 客户端与不同的版本连接。例如,在迁移或升级到 Data Grid 集群期间,Hot Rod 客户端版本可能是比 Data Grid Server 低的 Data Grid 版本。
Data Grid 建议使用最新的 Hot Rod 客户端版本从最新的功能和安全增强中受益。
Data Grid 8 及更新的版本
热 Rod 协议版本 3.x 会自动协商使用 Data Grid Server 的客户端可能的最高版本。
Data Grid 7.3 及更早版本
使用比 Data Grid 服务器版本高的 Hot Rod 协议版本的客户端必须设置 infinispan.client.hotrod.protocol_version
属性。
其他资源
- 热 Rod 协议参考
- 将 Hot Rod 客户端连接到具有不同版本的服务器 (红帽知识库)