Итак, вопрос заключается в безопасности использования внешнего хранилища состояний внутри потоковых функций, таких как фильтр, карта и т. Д.
Можно ли сделать что-то вроде этого:
JedisPool pool = ...;
KStream stream = ...;
stream.map((k, v) -> {
JedisClient client = pool.getResource();
....
client.close();
});
...
KafkaStreams streams = ...;
Можетэто вызывает ошибки из-за использования одного пула внутри нескольких потоковых задач?В Apache Flink я могу использовать Rich*Function<>
, где я могу настроить пул соединений для любого хранилища только один раз в методе open
.В apache spark я также могу настроить глобальные соединения.Нужно ли делать то же самое, используя потоки Кафки или нет?