将 ksqlDB 与 Event Streams 配合使用
您可以将 KSQL 与 Event Streams 配合使用以进行流处理。
ksqlDB 是用于事件流式方法的专用数据库。 使用它可通过针对 Apache Kafka的专用流处理数据库快速构建端到端事件流应用程序。
使用 Event Streams 运行 ksqlDB 的最快、最简单方法是使用 Docker 容器,如 ksqlDB Quickstart 中所述。
由于 ksqlDB 需要创建具有无限 retention.ms 设置的主题,因此只能将 ksqlDB 与企业套餐配合使用。
完成以下步骤以进行设置。 完成后,您可以运行 ksqlDB 快速入门指南中列出的所有查询。
-
使用 IBM Cloud 控制台中的 Event Streams 仪表板来创建具有单个分区和缺省保留期的名为
_confluent-ksql-default__command_topic的主题。 -
如果要在 Docker 容器中运行 ksqlDB,请按照以下步骤操作:
a. 创建具有以下内容的
docker-compose.yml文件:--- 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其中,BOOTSTRAP_SERVERS 和 PASSWORD 是 Event Streams 中 IBM Cloud 服务凭证选项卡中的值。
b. 从创建文件的目录中,运行以下命令以启动 ksqlDB 服务器。
docker-compose upc. 运行以下命令以连接到 ksqlDB 服务器并启动交互式命令行接口 (CLI) 会话。
docker exec -it ksqldb-cli ksql http://ksqldb-server:8088 -
如果不是在 Docker 容器中运行 ksqlDB,请按照以下步骤操作:
a. 克隆 ksqlDB 存储库:
git clone https://github.com/confluentinc/ksqlb. 导航至 ksqlDB 目录并编译代码。
cd ksql mvn clean install -Dmaven.test.skip=truec. 创建 Event Streams ksqlDB 配置文件。
例如:
bootstrap.servers=BOOTSTRAP_SERVERS listeners=http://localhost:8088 security.protocol=SASL_SSL sasl.mechanism=PLAIN ssl.protocol=TLSv1.2 ssl.enabled.protocols=TLSv1.2 sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="token" password="PASSWORD"; ksql.sink.replications.default=3其中,BOOTSTRAP_SERVERS 和 PASSWORD 是 Event Streams 中 IBM Cloud 服务凭证选项卡中的值。
d. 使用以下命令启动 ksqlDB 服务器:
./bin/ksql-server-start ./config/ibm-eventstreams.propertiese. 使用以下命令启动 ksqlDB CLI:
./bin/ksql
完成这些步骤后,可以运行 ksqlDB 快速入门指南中列出的所有查询。