В чем разница между мини-пакетами и потоками реального времени на практике (а не теорией)? Теоретически, я понимаю, что мини-партия - это то, что происходит в данный период времени, тогда как потоковое время в реальном времени больше похоже на то, что поступает, но мой самый большой вопрос - почему бы не иметь мини-пакет с временным интервалом эпсилона (скажем, одна миллисекунда) или я хотел бы понять причину, по которой один был бы эффективным решением, чем другой?В чем разница между мини-пакетами и потоками реального времени на практике (а не теорией)?
Недавно я встретил один пример, где мини-пакет (Apache Spark) используется для обнаружения мошенничества и потоковой передачи в реальном времени (Apache Flink), используемого для предотвращения мошенничества. Кто-то также прокомментировал, что мини-партии не будут эффективным решением для предотвращения мошенничества (поскольку цель состоит в том, чтобы предотвратить возникновение транзакции, как это произошло). Теперь я задаюсь вопросом, почему это не так эффективно с мини-пакетом (Spark)? Почему неэффективно запускать мини-пакет с задержкой в 1 миллисекунду? Пакетирование - это техника, используемая повсюду, включая ОС и стек TCP/IP ядра, где данные на диске или сети действительно буферизованы, и что является убедительным фактором здесь, чтобы сказать, что один более эффективен, чем другой?
Большое спасибо за ответ, так как делает Apache Flink лучше, чем планировать распределенное пакетное задание каждые миллисекунды в этом случае? вообще ли буфер Apache Flink? – user1870400
Flink расписывает потоковое задание только один раз и непрерывно записывает трубопроводы через своих операторов. Флинковые записи для передачи данных по сети для повышения эффективности сети. Это работает, помещая записи в буфер (по умолчанию 32kb) и отправляя этот буфер после его заполнения. Существует также тайм-аут для отправки буфера, если поток недостаточно «быстрый». Этот метод ограничивает максимальную задержку. –
Если сказать, что 32Kb не достигнуто (скажем, не хватает количества сообщений), что такое период ожидания? и настраивается ли он?Я предполагаю, что планировщик, планирующий задания, может принимать разумные решения о том, где планировать увеличение параллелизма и пропускной способности на машинах, но если Apache Flink планирует только один раз, то интересно, как он может распределять нагрузку через машины либо во время выполнения задания? – user1870400