3.2. 配置 Hot Rod 客户端连接
配置 Hot Rod Java 客户端连接数据网格服务器。
流程
-
使用
ConfigurationBuilder类来生成不可变配置对象,您可以传递给RemoteCacheManager,或使用应用 classpath 上的hotrod-client.properties文件。
ConfigurationBuilder
hotrod-client.properties
infinispan.client.hotrod.server_list = 127.0.0.1:11222,192.0.2.0:11222 infinispan.client.hotrod.auth_username = username infinispan.client.hotrod.auth_password = changeme infinispan.client.hotrod.auth_realm = default infinispan.client.hotrod.sasl_mechanism = SCRAM-SHA-512
infinispan.client.hotrod.server_list = 127.0.0.1:11222,192.0.2.0:11222
infinispan.client.hotrod.auth_username = username
infinispan.client.hotrod.auth_password = changeme
infinispan.client.hotrod.auth_realm = default
infinispan.client.hotrod.sasl_mechanism = SCRAM-SHA-512
配置 Hot Rod URI
您还可以使用 URI 配置 Hot Rod 客户端连接,如下所示:
ConfigurationBuilder
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.uri("hotrod://username:changeme@127.0.0.1:11222,192.0.2.0:11222?auth_realm=default&sasl_mechanism=SCRAM-SHA-512");
RemoteCacheManager cacheManager = new RemoteCacheManager(builder.build());
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.uri("hotrod://username:changeme@127.0.0.1:11222,192.0.2.0:11222?auth_realm=default&sasl_mechanism=SCRAM-SHA-512");
RemoteCacheManager cacheManager = new RemoteCacheManager(builder.build());
hotrod-client.properties
infinispan.client.hotrod.uri = hotrod://username:changeme@127.0.0.1:11222,192.0.2.0:11222?auth_realm=default&sasl_mechanism=SCRAM-SHA-512
infinispan.client.hotrod.uri = hotrod://username:changeme@127.0.0.1:11222,192.0.2.0:11222?auth_realm=default&sasl_mechanism=SCRAM-SHA-512
在 classpath 之外添加属性
如果 hotrod-client.properties 文件不在应用程序类路径上,则需要指定位置,如下例所示:
3.2.1. 在客户端配置中定义 Data Grid 集群 复制链接链接已复制到粘贴板!
在 Hot Rod 客户端配置中提供 Data Grid 集群的位置。
流程
至少提供一个 Data Grid 集群名称以及至少一个带有
ClusterConfigurationBuilder类的节点的主机名和端口。如果要将集群定义为默认集群,以便客户端始终首先尝试连接到它,然后使用
addServers ("<host_name>:<port>; <host_name>:<port>")方法定义服务器列表。
多个集群连接
带有故障转移集群的默认服务器列表
ConfigurationBuilder clientBuilder = new ConfigurationBuilder();
clientBuilder.addServers("hostA1:11222; hostA2:11222")
.addCluster("siteB")
.addClusterNodes("hostB1:11222; hostB2:11223");
RemoteCacheManager remoteCacheManager = new RemoteCacheManager(clientBuilder.build());
ConfigurationBuilder clientBuilder = new ConfigurationBuilder();
clientBuilder.addServers("hostA1:11222; hostA2:11222")
.addCluster("siteB")
.addClusterNodes("hostB1:11222; hostB2:11223");
RemoteCacheManager remoteCacheManager = new RemoteCacheManager(clientBuilder.build());
3.2.2. 手动切换 Data Grid 集群 复制链接链接已复制到粘贴板!
在 Data Grid 集群间手动切换 Hot Rod Java 客户端连接。
流程
在
RemoteCacheManager类中调用以下方法之一:switchToCluster (clusterName)切换到客户端配置中定义的特定集群。switchToDefaultCluster ()切换到客户端配置中的默认集群,该集群被定义为 Data Grid 服务器列表。
3.2.3. 配置连接池 复制链接链接已复制到粘贴板!
热 Rod Java 客户端保持与数据网格服务器的持久连接池,以重复利用 TCP 连接,而不是在每个请求上创建它们。
流程
- 配置 Hot Rod 客户端连接池设置,如下例所示:
ConfigurationBuilder
hotrod-client.properties
这些配置选项提供对池的精细控制。我们建议根据应用程序需求调整池。否则,您可能会增加新连接的延迟,而打开或减少可用连接的吞吐量。
因为负载增加,大型池可能会导致新连接的"完全生效"。但是,它应该有助于吞吐量增加与参与请求的连接。较小的池可以避免这种效果,并消耗较少的资源。但是,它只能在开始降级前处理如此多的请求。