Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Primary;
- import com.google.common.collect.ImmutableList;
- import com.hazelcast.client.HazelcastClient;
- import com.hazelcast.client.config.ClientConfig;
- import com.hazelcast.client.config.ClientConnectionStrategyConfig;
- import com.hazelcast.client.config.ClientNetworkConfig;
- import com.hazelcast.config.DiscoveryConfig;
- import com.hazelcast.config.DiscoveryStrategyConfig;
- import com.hazelcast.core.HazelcastInstance;
- import com.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategyFactory;
- @Configuration
- @Primary
- public class HazelcastConfiguration {
- @Bean
- public HazelcastInstance hazelcastInstance() {
- return HazelcastClient.newHazelcastClient(HazelcastClientConfigFactory.createClientConfig());
- }
- }
- class HazelcastClientConfigFactory {
- private static final int CONNECTION_ATTEMPT_PERIOD = 2000;
- public static ClientConfig createClientConfig() {
- final ClientConfig config = new ClientConfig();
- config.getConnectionStrategyConfig()
- .setAsyncStart(true)
- .setReconnectMode(ClientConnectionStrategyConfig.ReconnectMode.ASYNC);
- config.setProperty("hazelcast.discovery.enabled", "true");
- final ClientNetworkConfig networkConfig = new ClientNetworkConfig();
- networkConfig.setRedoOperation(false);
- networkConfig.setConnectionAttemptLimit(Integer.MAX_VALUE);
- networkConfig.setConnectionAttemptPeriod(CONNECTION_ATTEMPT_PERIOD);
- final DiscoveryConfig discoveryConfig = new DiscoveryConfig();
- final HazelcastKubernetesDiscoveryStrategyFactory factory = new HazelcastKubernetesDiscoveryStrategyFactory();
- final DiscoveryStrategyConfig strategyConfig = new DiscoveryStrategyConfig(factory);
- strategyConfig.addProperty("service-dns", "hazelcast");
- strategyConfig.addProperty("service-dns-timeout", 10);
- discoveryConfig.setDiscoveryStrategyConfigs(ImmutableList.of(strategyConfig));
- networkConfig.setDiscoveryConfig(discoveryConfig);
- config.setNetworkConfig(networkConfig);
- return config;
- }
- }
Add Comment
Please, Sign In to add comment