Я пытаюсь оценить, можно ли использовать Кафку для расширения нашего текущего решения.
Я могу легко определить разделы. В настоящее время требуется 1500 разделов, каждый из которых имеет 1-2 события в секунду, но будущее может достигать 10000 разделов.
Но есть одна часть нашего решения, которую я не знаю, как бы решить в Кафке.
Проблема в том, что каждое сообщение содержит строку, и я хочу назначить уникальный идентификатор для каждой строки по всей теме. Таким образом, одинаковые строки имеют одинаковый идентификатор, в то время как разные строки имеют разные идентификаторы. Идентификаторы не должны быть последовательными, и при этом они не должны постоянно расти.
Затем идентификаторы будут использоваться в качестве уникальных ключей для идентификации этих строк. Строки могут состоять из сотен символов, поэтому я не думаю, что они будут эффективными ключами.
Более расширенное использование будет в тех случаях, когда сообщения могут иметь разные «виды» строк, поэтому будет несколько уникальных последовательностей идентификаторов. И сообщения будут содержать только некоторые из этих видов в зависимости от типа сообщения.
Другое расширенное использование будет состоять в том, что значения являются не строками, а структурами, и если две одинаковые структуры будут некоторым более сложным правилом, например, если PropA равен, то структуры равны, если нет, то структуры равны, если PropB равно.
Чтобы проиллюстрировать проблему: каждый раздел представляет собой компьютер в сети. Каждое событие - это действие на компьютере. События необходимо упорядочивать для каждого компьютера, чтобы события, которые изменяют состояние компьютера (например, пользователь вошел в систему), могли влиять на другие типы событий, и упорядочение является критически важным для этого. Например. пользователь открыл приложение, файл записан, вставлена флешка и т. д. И мне нужно, чтобы каждое приложение, файл, флешка или многие другие имели уникальные идентификаторы на всех компьютерах. Это тогда используется, чтобы вычислить статистику вниз по течению. И иногда событие может иметь несколько таких, например. операция над конкретным файлом на определенной флешке.