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