Вопрос1: Как именно вызов udf будет вызываться / вызываться KSQL?
Не уверен, что ты имеешь в виду. Как только ваш UDF сделан доступным для KSQL (см. https://docs.confluent.io/current/ksql/docs/developer-guide/udf.html#deploying),, вы можете вызывать UDF в ваших операторах KSQL как IP2LOOKUP
. Вы также можете запустить SHOW FUNCTIONS
в KSQL, чтобы подтвердить, что ваш UDF доступен для использования.
Возможно, вы спрашиваете из-за вашего следующего вопроса? KSQL будет вызывать ваш UDF по одному сообщению за раз.
Вопрос2: Могу ли я использовать потоки, обрабатывающие запросы в udf?
Почему вы хотите это сделать? Вы обеспокоены тем, что KSQL с вашим текущим кодом UDF не сможет обрабатывать объем входящих данных? Говоря о том, что является ожидаемым объемом данных, который вы пытаетесь обработать, потому что, возможно, вы пытаетесь провести преждевременную оптимизацию?
Кроме того, не зная больше подробностей, я не думаю, что многопоточная установка для вашей UDF даст какие-либо преимущества, потому что UDF, при вызове, будет по-прежнему обрабатывать только одно сообщение за раз (для сервера KSQL или более точно, для каждой задачи потока, которых может быть много для каждого сервера KSQL, я упомяну это, чтобы прояснить, что пользовательские функции в KSQL не ограничивают вашу обработку, обрабатывая только одно сообщение на всех серверах; обработка, конечно, распределена и происходит параллельно).
Вопрос 3: Поскольку тема / поток состоит из 15 разделов, я должен развернуть 15 узлов ksql-серверов?
Это зависит от вашего объема данных. Вы можете вращать столько, сколько хотите серверов KSQL. Если объем данных невелик, может быть достаточно одного сервера KSQL. Если объем данных выше, вы можете запустить дополнительные серверы KSQL максимум до 15 серверов (поскольку в теме ввода 15 разделов). Любые дополнительные серверы KSQL будут работать вхолостую.
В сценарии, когда 15 серверов KSQL будет недостаточно, вы должны увеличить количество разделов для вашей входной темы с 15 до большего числа, а затем вы также можете запустить больше серверов KSQL (что, таким образом, увеличивает вычислительную мощность вашей настройки).