Skip to content

Commit

Permalink
configured hazelcast to use Eureka for discovery, upgraded spring boo…
Browse files Browse the repository at this point in the history
…t parent and hazelcast for scheduler work
  • Loading branch information
jgoldverg committed Aug 28, 2024
1 parent fa2bd92 commit 02f7f05
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 15 deletions.
10 changes: 5 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.4</version>
<version>3.3.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.onedatashare</groupId>
Expand All @@ -16,7 +16,7 @@

<properties>
<java.version>21</java.version>
<spring-cloud.version>2022.0.3</spring-cloud.version>
<spring-cloud.version>2023.0.3</spring-cloud.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -45,12 +45,12 @@
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-spring</artifactId>
<version>5.3.2</version>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-aws</artifactId>
<version>3.4</version>
<artifactId>hazelcast-eureka-two</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
Expand Down
30 changes: 20 additions & 10 deletions src/main/java/com/onedatashare/scheduler/config/CacheConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,33 @@

import com.hazelcast.config.Config;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.eureka.one.EurekaOneDiscoveryStrategyFactory;
import com.hazelcast.instance.impl.HazelcastInstanceFactory;
import org.springframework.beans.factory.annotation.Value;
import com.netflix.discovery.EurekaClient;
import com.netflix.discovery.shared.transport.jersey.TransportClientFactories;
import com.netflix.discovery.shared.transport.jersey3.Jersey3TransportClientFactories;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
public class CacheConfig {

@Value("${eureka.client.serviceUrl.defaultZone}")
String eurekaUrl;

@Value("${spring.application.name}")
String springName;

@Bean(name = "hazelcastConfig")
@Profile("prod")
public Config prodHazelcastConfig() {
public Config prodHazelcastConfig(EurekaClient eurekaClient) {
Config config = new Config();
config.getNetworkConfig().getJoin().getAwsConfig().setEnabled(true)
.setProperty("security-group-name", "Transfer Scheduler")
.setProperty("use-public-ip", "true");
config.setClusterName("Transfer-Scheduler-Cluster");
config.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false);
EurekaOneDiscoveryStrategyFactory.setEurekaClient(eurekaClient);
config.getNetworkConfig().getJoin().getEurekaConfig().setEnabled(true)
.setProperty("namespace", "hazelcast")
.setProperty("use-classpath-eureka-client-props", "false")
.setProperty("shouldUseDns", "false")
.setProperty("self-registration", "true")
.setProperty("use-metadata-for-host-and-port", "true");

return config;
}

Expand All @@ -42,4 +47,9 @@ public HazelcastInstance hazelcastInstance(Config hazelcastConfig) {
return HazelcastInstanceFactory.newHazelcastInstance(hazelcastConfig);
}

@Bean
public TransportClientFactories transportClientFactories() {
return Jersey3TransportClientFactories.getInstance();
}

}

0 comments on commit 02f7f05

Please sign in to comment.