Introduction
ksqlDB is a database purpose-built to help developers create stream processing applications on top of Apache Kafka.
ksqldb-server
ksqldb-server
apiVersion: apps/v1 kind: Deployment metadata: name: ksqldb-server namespace: kafka spec: selector: matchLabels: app: ksqldb-server template: metadata: labels: app: ksqldb-server version: v1 spec: containers: - name: ksqldb-server image: confluentinc/ksqldb-server:0.28.2 imagePullPolicy: IfNotPresent env: - name: KEYSTORE_PASSWORD valueFrom: secretKeyRef: name: ksqldb-jks key: keystore_password - name: TRUSTSTORE_PASSWORD valueFrom: secretKeyRef: name: ksqldb-jks key: truststore_password - name: KEY_PASSWORD valueFrom: secretKeyRef: name: ksqldb-jks key: key_password - name: KSQL_BOOTSTRAP_SERVERS value: my-cluster-kafka-bootstrap.kafka:9093 - name: KSQL_LISTENERS value: http://0.0.0.0:8088 - name: KSQL_KSQL_SERVICE_ID value: ksql_service_2_ - name: KSQL_SECURITY_PROTOCOL value: SSL - name: KSQL_OPTS value: "-Dssl.keystore.location=/var/private/ssl/user-keystore.jks -Dssl.keystore.password=$(KEYSTORE_PASSWORD) -Dssl.key.password=$(KEY_PASSWORD) -Dssl.truststore.location=/var/private/ssl/user-truststore.jks -Dssl.truststore.password=$(TRUSTSTORE_PASSWORD) -Dlisteners=http://0.0.0.0:8088/" - name: KSQL_KSQL_EXTENSION_DIR value: /opt/ksqldb-udfs volumeMounts: - name: jks mountPath: /var/private/ssl readOnly: true volumes: - name: jks secret: secretName: ksqldb-jks --- apiVersion: v1 kind: Service metadata: name: ksqldb-server namespace: kafka labels: app: ksqldb-server service: ksqldb-server spec: type: LoadBalancer selector: app: ksqldb-server ports: - port: 8088 name: http-80
The above YAML file deploys the ks
ksqldb-cli
ksqldb-cli
Links
How to create a user-defined function
Cleaning messy sensor data in Kafka with ksqlDB