Кафка передела

Вы можете использовать position: absolute для установки нижнего колонтитула в нижней части страницы, но затем убедитесь, что ваши 2 столбца имеют соответствующие margin-bottom, чтобы они никогда не закрывались нижним колонтитулом.

#footer {
    position: absolute;
    bottom: 0px;
    width: 100%;
}
#content, #sidebar { 
    margin-bottom: 5em; 
}
1
задан Giorgos Myrianthous 19 March 2019 в 11:09
поделиться

2 ответа

в темах kafka разделены, и даже если вы можете добавить разделы в раздел, перераспределение разделено не будет: все данные, уже записанные в раздел, остаются там, новые данные будут распределены между существующими разделами (в циклическом порядке если вы не определяете ключи, в противном случае один ключ всегда будет попадать в один и тот же раздел, если вы не добавляете разделы.)

Но если у вас есть группа потребителей, и вы добавляете или удаляете потребителей в эту группу существует групповая перебалансировка, при которой каждый потребитель получает свою долю разделов, из которых он исключительно потребляет.

Таким образом, если у вас есть 3 раздела (с равномерно распределенными сообщениями между ними) и 2 получателя (в одной группе), то один получатель будет обрабатывать в два раза больше сообщений, чем другой; с 3 потребителями каждый будет потреблять один раздел; с 4 потребителями один будет бездействовать ...

Так как у вас уже есть равномерно распределенные сообщения (что хорошо), у вас должно быть столько потребителей, сколько у вас есть разделов, и если это все еще недостаточно быстро, вы можете добавить n разделов и n потребителей. (Конечно, вы также можете попытаться оптимизировать потребителя, но это уже другая история ...)

Добавлено для ответа на комментарий:

Когда потребитель - от данная группа - использует раздел, он будет продолжать это делать и будет единственным из группы, использующей этот раздел, даже если многие другие потребители из той же группы простаивают. В одной группе раздел никогда не разделяется между потребителями. (Если потребитель выходит из строя, другой продолжит работу, и если новый потребитель войдет в группу, произойдет перебалансировка, но в любом случае только один потребитель будет работать с одним разделом в данный момент времени.)

Таким образом, один из подходов, как сказано в вашем комментарии, будет равномерно распределять нагрузку по разделам. Другой подход - иметь тему, посвященную дорогостоящим работам, чтобы у нее было много разделов и много потребителей; и пусть тема для недорогих рабочих мест вызывает лихорадку у потребителей.

Последний подход, который я бы не рекомендовал, состоял бы в том, чтобы не использовать функции группы потребителей и управлять собой, как вы потребляете из Kafka, используя методы назначения и поиска от потребителя. (См. KafkaConsumer JavaDoc для получения дополнительной информации). Spark Structured Streaming, например, использует этот подход, но он намного сложнее ...

0
ответ дан pgras 19 March 2019 в 11:09
поделиться

Ваше понимание относительно перегородок и потребителей неверно.

Если у вас есть N разделов, то вы можете иметь до N потребителей в одной и той же группе потребителей, каждый из которых читает из одного раздела. Если у вас меньше потребителей, чем у разделов, то некоторые из них будут читать из более чем одного раздела. Кроме того, если у вас больше потребителей, чем разделов, некоторые из них будут неактивны и вообще не будут получать сообщений.

Если у вас есть один потребитель на раздел, то некоторые разделы могут получать больше сообщений, и именно поэтому некоторые из ваших потребителей могут бездействовать, в то время как другие могут обрабатывать некоторые сообщения. Обратите внимание, что сообщения не всегда вставляются в тематические разделы в циклическом порядке, поскольку сообщения с одинаковым ключом помещаются в один и тот же раздел.

0
ответ дан Giorgos Myrianthous 19 March 2019 в 11:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: