we have to kafka connector cluster, one for business process and integrated with confluent cloud you can check it from https://confluent.cloud

the other is for slacker manger to sync message from confluent kafka cluster to gcp pub/sub topics, check it from https://kafka-connect-utils-data.apps.brave.safibank.online/

Kafka connector related code

kafka connector depends on docker image, we use confluent-init-container:2.4.0 as the base image and add customized jar files(utils.jar, java-pub-sub.jar) to plugin paths.

docker image:

https://github.com/SafiBank/SaFiMono/blob/main/.github/workflows/download-utils-jar-build-image.yaml

https://github.com/SafiBank/SaFiMono/blob/main/devops/docker/utils_jar/Dockerfile

terraform code:

https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/confluent-kafka/kafka-connect-data/kafka-connect-utils.yaml

connector templates:

https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/confluent-kafka/connectors/templates/data-Id-card-snapshot-config.yaml

https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/confluent-kafka/connectors/templates/data-customer-snapshot-config.yaml

https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/confluent-kafka/connectors/templates/data-device-fingerprint-snapshot-config.yaml

https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/confluent-kafka/connectors/templates/data-facial-verification-snapshot-config.yaml

https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/confluent-kafka/connectors/templates/data-interbank-transaction-config.yaml

https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/confluent-kafka/connectors/templates/data-intrabank-transaction-config.yaml

https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/confluent-kafka/connectors/templates/data-loans-overdraft-config.yaml

How to check the detail configuration for kafka connector cluster

Go to Grafana to check the detail log information, the connector configuration and detail logs can retrieve from Grafana Loki component.

https://grafana.monitoring.brave.safibank.online/explore?orgId=1&left={"datasource":"P8E80F9AEF21F6940","queries":[{"refId":"A","datasource":{"type":"loki","uid":"P8E80F9AEF21F6940"},"editorMode":"builder","expr":"{cluster%3D\"safi-brave-applications\", app%3D\"connect-utils-data\"} |%3D ``","queryType":"range"}],"range":{"from":"now-24h","to":"now"}}

Connector cluster configuration

rest.advertised.host.name=connect-utils-data-0.connect-utils-data.safi-confluent-operator.svc.cluster.local
rest.advertised.host.port=8083
admin.bootstrap.servers=SASL_SSL://pkc-vk2jj.asia-southeast1.gcp.confluent.cloud:9092
admin.sasl.mechanism=PLAIN
admin.security.protocol=SASL_SSL
bootstrap.servers=SASL_SSL://pkc-vk2jj.asia-southeast1.gcp.confluent.cloud:9092
config.providers=file
config.providers.file.class=org.apache.kafka.common.config.provider.FileConfigProvider
config.storage.replication.factor=3
config.storage.topic=safi-confluent-operator.connect-utils-data-configs
confluent.topic.replication.factor=3
consumer.bootstrap.servers=SASL_SSL://pkc-vk2jj.asia-southeast1.gcp.confluent.cloud:9092
consumer.sasl.mechanism=PLAIN
consumer.security.protocol=SASL_SSL
group.id=safi-confluent-operator.connect-utils-data
key.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schema.registry.basic.auth.credentials.source=USER_INFO
key.converter.schema.registry.url=https://psrc-knmx2.australia-southeast1.gcp.confluent.cloud
key.converter.schemas.enable=true
listeners=http://0.0.0.0:8083
offset.flush.interval.ms=10000
offset.storage.replication.factor=3
offset.storage.topic=safi-confluent-operator.connect-utils-data-offsets
plugin.path=/usr/share/java,/usr/share/confluent-hub-components,/data
producer.bootstrap.servers=SASL_SSL://pkc-vk2jj.asia-southeast1.gcp.confluent.cloud:9092
producer.sasl.mechanism=PLAIN
producer.security.protocol=SASL_SSL
request.timeout.ms=20000
rest.advertised.listener=http
retry.backoff.ms=500
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
status.storage.replication.factor=3
status.storage.topic=safi-confluent-operator.connect-utils-data-status
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.basic.auth.credentials.source=USER_INFO
value.converter.schema.registry.url=https://psrc-knmx2.australia-southeast1.gcp.confluent.cloud
value.converter.schemas.enable=true

Attachments:

connector-logs.png (image/png)