All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.networknt.mesh.kafka.KsqldbReactiveConsumerStartupHook Maven / Gradle / Ivy

The newest version!
package com.networknt.mesh.kafka;

import com.networknt.config.Config;
import com.networknt.kafka.common.KafkaKsqldbConfig;
import com.networknt.server.StartupHookProvider;
import io.confluent.ksql.api.client.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Map;

public class KsqldbReactiveConsumerStartupHook implements StartupHookProvider {
    private static Logger logger = LoggerFactory.getLogger(KsqldbReactiveConsumerStartupHook.class);
    private static KafkaKsqldbConfig config = (KafkaKsqldbConfig) Config.getInstance().getJsonObjectConfig(KafkaKsqldbConfig.CONFIG_NAME, KafkaKsqldbConfig.class);
    public static Client client = null;

    @Override
    public void onStartup() {
        logger.info("KsqldbReactiveConsumerStartupHook begins");
        ClientOptions options = ClientOptions.create()
                .setHost(config.getKsqldbHost())
                .setPort(config.getKsqldbPort());
        client = Client.create(options);
        Map properties = config.getProperties();
//        try {
//            client.streamQuery(config.getQuery(), properties)
//                    .thenAccept(streamedQueryResult -> {
//                        System.out.println("Query has started. Query ID: " + streamedQueryResult.queryID());
//                        RowSubscriber subscriber = new RowSubscriber();
//                        streamedQueryResult.subscribe(subscriber);
//                    }).exceptionally(e -> {
//                System.out.println("Request failed: " + e);
//                return null;
//            });
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
        logger.info("KsqldbReactiveConsumerStartupHook ends");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy