У меня есть внешняя система, которая публикует финансовые данные в режиме реального времени (например, котировки акций и биржевые цены по всему миру).
Эта внешняя система имеет некоторые ограничения по количеству акций на соединение с учетной записью, поскольку у нас много приложений, которым необходимо использовать эти потоковые данные в реальном времени, поэтому мы не хотим, чтобы каждое приложение подключалось к этой внешней системе и управляло емкостью сами по себе, поэтому мы хотим спроектировать единую систему, которая будет потреблять все ресурсы, а затем публиковать их в какой-либо очереди сообщений (например, kafka или pulsar), тогда нижестоящее приложение может использовать темы kafka.
Проблема в том, как мы можем разрабатывать темы, количество акций составляет около 10 миллионов, но каждое приложение заинтересовано только в их подмножестве, размер подмножества может быть как маленьким, так и большим, и разные подмножества могут совместно использовать одно и то же. акции.
Что я могу подумать, так это динамически создавать потоковое задание (например, потоковое воспроизведение kafka или отдельное задание Flink, чтобы выполнить предварительную агрегацию, чтобы собрать заинтересованные акции для каждого потребителя по всем темам, а затем опубликовать в другой теме для каждого потребителя) Таким образом, у каждого потребителя будет своя собственная тема только с его заинтересованными запасами, но он определенно принесет накладные расходы на время транспортировки сообщения, дублирование сообщения и задержку, кроме того, емкость может также стать проблемой, если их становится все больше и больше. потребители.
Я не знаю, есть ли лучший способ выполнить мои требования, пожалуйста, совет, спасибо.