Utilización de ksqlDB con Event Streams

Gen 2

Puedes utilizar KSQL junto con Event Streams para el procesamiento de flujos.

ksqlDB es una base de datos diseñada específicamente para la transmisión de eventos. Úsalo para crear rápidamente aplicaciones de transmisión de eventos de extremo a extremo con una base de datos de procesamiento de flujos diseñada específicamente para Apache Kafka.

La forma más rápida y fácil de ejecutar ksqlDB con Event Streams es utilizar un contenedor de docker, como se describe en ksqlDB quickstart.

Dado que ksqlDB necesita crear un tema con una configuración de retention.ms ilimitada, solo puedes utilizar ksqlDB con el plan Enterprise.

Sigue estos pasos para configurar el sistema. Una vez completado, podrás ejecutar todas las consultas que aparecen en la Guía de inicio rápido de « ksqlDB ».

  1. Utilice el panel de control de Event Streams en la consola de IBM Cloud para crear un tema denominado _confluent-ksql-default__command_topic con una sola partición y el periodo de retención predeterminado.

  2. Si desea ejecutar ksqlDB en el contenedor de docker, siga estos pasos:

    a. Cree el archivo docker-compose.yml con el contenido siguiente:

    ---
    version: '2'
    services:
      ksqldb-server:
        image: confluentinc/ksqldb-server:latest
        hostname: ksqldb-server
        container_name: ksqldb-server
        ports:
          - "8088:8088"
        environment:
          KSQL_LISTENERS: http://0.0.0.0:8088
          KSQL_BOOTSTRAP_SERVERS: <BOOTSTRAP_SERVERS>
          KSQL_KSQL_SERVICE_ID: default_
          KSQL_KSQL_SINK_REPLICAS: 3
          KSQL_KSQL_STREAMS_REPLICATION_FACTOR: 3
          KSQL_SECURITY_PROTOCOL: SASL_SSL
          KSQL_KSQL_INTERNAL_TOPIC_REPLICAS: 3
          KSQL_SASL_JAAS_CONFIG: org.apache.kafka.common.security.plain.PlainLoginModule required username=\"token\" password=\"<PASSWORD>\";
          KSQL_SASL_MECHANISM: PLAIN
      ksqldb-cli:
        image: confluentinc/ksqldb-cli:latest
        container_name: ksqldb-cli
        depends_on:
          - ksqldb-server
        entrypoint: /bin/sh
        tty: true
    

    donde BOOTSTRAP_SERVERS y PASSWORD son los valores del separador Credenciales de servicio de Event Streams en IBM Cloud.

    b. Desde el directorio en el que has creado el archivo, ejecuta el siguiente comando para iniciar un servidor de « ksqlDB ».

    docker-compose up
    

    c. Ejecute el siguiente mandato para conectarse al servidor ksqlDB e iniciar una sesión de interfaz de línea de mandatos (CLI) interactiva.

    docker exec -it ksqldb-cli ksql http://ksqldb-server:8088
    
  3. Si no está ejecutando ksqlDB en el contenedor de docker, siga estos pasos:

    a. Clone el repositorio de ksqlDB:

    git clone https://github.com/confluentinc/ksql
    

    b. Vaya al directorio de ksqlDB y compile el código.

    cd ksql
    mvn clean install -Dmaven.test.skip=true
    

    c. Cree un archivo de configuración de ksqlDB de Event Streams.

    Por ejemplo:

    bootstrap.servers=BOOTSTRAP_SERVERS
    listeners=http://localhost:8088
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="token" password="PASSWORD";
    ksql.sink.replications.default=3
    

    donde BOOTSTRAP_SERVERS y PASSWORD son los valores del separador Credenciales de servicio de Event Streams en IBM Cloud.

    d. Inicia el servidor « ksqlDB » con el siguiente comando :

    ./bin/ksql-server-start ./config/ibm-eventstreams.properties
    

    e. Inicia la CLI de « ksqlDB » con el siguiente comando :

    ./bin/ksql
    

Una vez completados estos pasos, podrás ejecutar todas las consultas que aparecen en la Guía de inicio rápido de « ksqlDB ».