Hazelcast 缓存提供程序 - 如何以编程方式设置配置智能路由?

问题描述 投票:0回答:1

我将 java 项目的 Hazelcast 版本从 3.12.X 更新到 5.3.5。但是,当我在本地运行应用程序时,我收到此错误:

[WARNING ] _hzinstance_jcache_shared [dev] [5.3.5] Exception during initial connection to [127.0.0.1]:5703: com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused: no further information to address /127.0.0.1:5703

查找错误时,似乎需要将智能路由设置为

FALSE
。我想知道在将配置创建为
MutableConfiguration
时如何以编程方式设置它? 这是我的代码片段:

@PostConstruct
private void initialize() {
  // Get the default cache service.
  final CachingProvider cachingProvider = Caching.getCachingProvider();
  final CacheManager cacheManager = cachingProvider.getCacheManager();

  // Configure the cache.
  final MutableConfiguration<Integer, MyCustomResponse> config = new MutableConfiguration<>();
  config.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(HOURS, 2)));
  config.setTypes(Integer.class, MyCustomResponse.class);

  // Now create the cache.
  Cache<Integer, MyCustomResponse> myCache = cacheManager.createCache("myCache", config);
}

我尝试通过将智能路由设置为

FALSE
来解决我的错误:
config.getNetworkConfig().setSmartRouting(false)

java hazelcast jcache
1个回答
0
投票

MutableConfiguration用于配置JCache。您可以像您的示例一样设置缓存的超时持续时间。

但是,客户端如何连接到集群是由ClientConfig设置的。您需要配置一个 ClientConfig bean,如下例所示:

@Bean
public ClientConfig clientConfig() {
  ClientConfig clientConfig = new ClientConfig();
  ClientNetworkConfig networkConfig = clientConfig.getNetworkConfig();
  networkConfig.setSmartRouting(true);
  // other configuration for the client
  return clientConfig;
}
© www.soinside.com 2019 - 2024. All rights reserved.