System Requirements
Conduktor Gateway is provided as a Docker image and should be deployed and managed how is best for your organisation and use case. This can either be deployed in a single container, or more likely a number of Gateway instances can be deployed behind a load balancer and scaled appropriately to meet your needs.
Jump to:
Hardware Requirements
Minimum
- 1 CPU core
- 2 GB of RAM
Recommended
- 2 CPU cores
- 4 GB of RAM
Gateway itself does not use local storage, but certain interceptors, such as Large message handling, might require temporary local storage.
Kafka Requirements
Conduktor Gateway requires Apache Kafka version 2.5.0 or higher. Conduktor Gateway should connect to Kafka as an admin user. As a minimum this user should have rights to:
- Create/Delete/Alter topics
- Commit offsets
- Create/alter/delete consumer groups
- Describe cluster information
Running the Gateway
In its most simple form Gateway can be run from a simple Docker run command with the credentials to connect to your Kafka cluster. However, Gateway needs to interact with your clients and your Kafka to get the most from it.
docker run \
-e KAFKA_BOOTSTRAP_SERVERS=kafka1:9092,kafka2:9092,kafka3:9092 \
-e KAFKA_SASL_MECHANISM=PLAIN \
-e KAFKA_SECURITY_PROTOCOL=SASL_PLAINTEXT \
-e KAFKA_SASL_JAAS_CONFIG='org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";' \
conduktor/conduktor-gateway:3.0.2
If you're interested in trying out Gateway yourself go checkout the demos. No matter how you deploy Gateway the finer configuration details required are described on the environment variables page.
Helm
Conduktor products can be deployed using helm charts, specifically the chart for the Gateway artefact can be found on Github.
Connecting to secured Kafka
Conduktor Gateway connects to Kafka just like any other client. Variables are prefixed with either KAFKA_
or GATEWAY_
, extra configurations (encryption/authentication etc.) can be provided via environment variables, as you can see in the above command.
Here, environment variables prefixed by KAFKA_
govern the connection to the upstream Kafka cluster.
Environment variables prefixed by GATEWAY_
govern Gateway internals or the connections to the downstream Kafka clients.
Security configurations can be provided using this scheme. For example:
ssl.truststore.location
would become:
KAFKA_SSL_TRUSTSTORE_LOCATION
for more infomation on this see environment variables.