diff --git a/charts/account-service/Chart.yaml b/charts/account-service/Chart.yaml index 941149ae3147e76aea34d5dc374abc2ed4dca672..c86b7cd9ddbe29787830a928171ccab889f44920 100644 --- a/charts/account-service/Chart.yaml +++ b/charts/account-service/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: "1.0" description: Deployment of the nynja account service. name: account-service -version: 0.2.3 +version: 0.2.4 diff --git a/releases/dev/account-service.yaml b/releases/dev/account-service.yaml index 3d7e0975839d7e8709c93f359a2eea261c64cf96..5f478da7da6cfe5b4983ae5a4115dc9fce8b358f 100644 --- a/releases/dev/account-service.yaml +++ b/releases/dev/account-service.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: account-service - version: 0.2.3 + version: 0.2.4 values: replicaCount: 1 diff --git a/releases/prod/account-service.yaml b/releases/prod/account-service.yaml index 0975a472596addf756e3d90ea641081800481702..32549910c2a67d3e9dfb2ecd7a2bf2d2bac1060c 100644 --- a/releases/prod/account-service.yaml +++ b/releases/prod/account-service.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: account-service - version: 0.2.3 + version: 0.2.4 values: replicaCount: 2 diff --git a/releases/staging/account-service.yaml b/releases/staging/account-service.yaml index 32c2d3f22ddad5ea143e49c10d04722b0050c0b1..7e0333b39fca217bc8d8bbde6006c867a4bcd9db 100644 --- a/releases/staging/account-service.yaml +++ b/releases/staging/account-service.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: account-service - version: 0.2.3 + version: 0.2.4 values: replicaCount: 2 diff --git a/src/main/java/biz/nynja/account/kafka/KafkaProducerConfig.java b/src/main/java/biz/nynja/account/kafka/KafkaProducerConfig.java index b9f2ebc2cd176cf6e2e1e84a0dec842941df02fe..19858b92a7ad726d0abb0a349aa8048176a0a1fc 100644 --- a/src/main/java/biz/nynja/account/kafka/KafkaProducerConfig.java +++ b/src/main/java/biz/nynja/account/kafka/KafkaProducerConfig.java @@ -15,8 +15,10 @@ import org.springframework.kafka.core.DefaultKafkaProducerFactory; import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.core.ProducerFactory; import org.springframework.kafka.support.serializer.JsonSerializer; +import org.springframework.scheduling.annotation.EnableAsync; @Configuration +@EnableAsync public class KafkaProducerConfig { @Value("${kafka.host}") @@ -25,6 +27,10 @@ public class KafkaProducerConfig { private String KAFKA_PORT; @Value("${kafka.topic}") private String KAFKA_TOPIC; + @Value("${kafka.max-block-ms}") + private String KAFKA_MAX_BLOCK_MS; + @Value("${kafka.reconnect-backoff-ms}") + private String KAFKA_RECONNECT_BACKOFF_MS; @Bean(name = "kafkaTopic") public String kafkaTopic() { @@ -42,6 +48,9 @@ public class KafkaProducerConfig { configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class); + configProps.put(ProducerConfig.RECONNECT_BACKOFF_MS_CONFIG, KAFKA_RECONNECT_BACKOFF_MS); // The base amount of time to wait before attempting to reconnect to a given host. default=50L + configProps.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, KAFKA_MAX_BLOCK_MS); + return new DefaultKafkaProducerFactory(configProps); } diff --git a/src/main/java/biz/nynja/account/kafka/UserEventsProducer.java b/src/main/java/biz/nynja/account/kafka/UserEventsProducer.java index 1d087de05f2c48a2f21a9befd276b234b86e962c..6ffe9509e92886a13e34031c7d4099855d6ddc2a 100644 --- a/src/main/java/biz/nynja/account/kafka/UserEventsProducer.java +++ b/src/main/java/biz/nynja/account/kafka/UserEventsProducer.java @@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; @Component @@ -22,6 +23,7 @@ public class UserEventsProducer { @Qualifier("kafkaTopic") private String kafkaTopic; + @Async public void sendKafkaMessage(UserEventsMessageTemplate userEventsMessageTemplate) { kafkaTemplate.send(kafkaTopic, userEventsMessageTemplate); diff --git a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java index 924de5234b3d09fa4a2e5c182b0f42d3ce35c1d1..0a703de65f807707ac084ed391895cbcef7c2aaa 100644 --- a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java +++ b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java @@ -167,7 +167,7 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio return null; } } catch (StatusRuntimeException e) { - logger.info("Error while lose connection with bridge"); + logger.error("Error while lose connection with bridge: {}, {}", e.getMessage(), e.getStatus(), e); sagaTransaction.rollBack(); return null; } catch (IllegalArgumentException | IllegalStateException e) { @@ -270,7 +270,7 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio return null; } } catch (StatusRuntimeException e) { - logger.info("Error while lose connection with bridge"); + logger.error("Error while lose connection with bridge: {}, {}", e.getMessage(), e.getStatus(), e); sagaTransaction.rollBack(); return null; } catch (IllegalArgumentException | IllegalStateException e) { @@ -381,7 +381,7 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio return false; } } catch (StatusRuntimeException e) { - logger.info("Error while lose connection with bridge"); + logger.error("Error while lose connection with bridge: {}, {}", e.getMessage(), e.getStatus(), e); sagaTransaction.rollBack(); return false; } catch (IllegalArgumentException | IllegalStateException e) { @@ -571,7 +571,7 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio return Optional.of(Cause.ERROR_DELETING_PROFILE); } } catch (StatusRuntimeException e) { - logger.info("Error while lose connection with bridge"); + logger.error("Error while lose connection with bridge: {}, {}", e.getMessage(), e.getStatus(), e); sagaTransaction.rollBack(); return Optional.of(Cause.ERROR_DELETING_PROFILE); } catch (IllegalArgumentException | IllegalStateException e) { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 879dcbaa39ecec1afa858e09adc1da683f827298..b890db9e3baa2c4504b009b944165d80445048be 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -47,6 +47,8 @@ kafka: host: 127.0.0.1 port: 9092 topic: userEventss + max-block-ms: 1000 + reconnect-backoff-ms: 10000 #Metrics related configurations management: diff --git a/src/main/resources/application-production.yml b/src/main/resources/application-production.yml index f97fa408ddd1337766799ba344708638a7ba8351..a4ad9c16c98b85e344a6d1a10c464adb70f18fb9 100644 --- a/src/main/resources/application-production.yml +++ b/src/main/resources/application-production.yml @@ -40,6 +40,8 @@ kafka: host: ${KAFKA_HOST:kafka.kafka.svc.cluster.local} port: ${KAFKA_PORT:9092} topic: ${KAFKA_TOPIC:userEvents} + max-block-ms: ${KAFKA_MAX_BLOCK_MS:1000} + reconnect-backoff-ms: ${KAFKA_RECONNECT_BACKOFF_MS:10000} #Metrics related configurations management: