Вы можете использовать position: absolute
для установки нижнего колонтитула в нижней части страницы, но затем убедитесь, что ваши 2 столбца имеют соответствующие margin-bottom
, чтобы они никогда не закрывались нижним колонтитулом.
#footer {
position: absolute;
bottom: 0px;
width: 100%;
}
#content, #sidebar {
margin-bottom: 5em;
}
в темах kafka разделены, и даже если вы можете добавить разделы в раздел, перераспределение разделено не будет: все данные, уже записанные в раздел, остаются там, новые данные будут распределены между существующими разделами (в циклическом порядке если вы не определяете ключи, в противном случае один ключ всегда будет попадать в один и тот же раздел, если вы не добавляете разделы.)
Но если у вас есть группа потребителей, и вы добавляете или удаляете потребителей в эту группу существует групповая перебалансировка, при которой каждый потребитель получает свою долю разделов, из которых он исключительно потребляет.
Таким образом, если у вас есть 3 раздела (с равномерно распределенными сообщениями между ними) и 2 получателя (в одной группе), то один получатель будет обрабатывать в два раза больше сообщений, чем другой; с 3 потребителями каждый будет потреблять один раздел; с 4 потребителями один будет бездействовать ...
Так как у вас уже есть равномерно распределенные сообщения (что хорошо), у вас должно быть столько потребителей, сколько у вас есть разделов, и если это все еще недостаточно быстро, вы можете добавить n разделов и n потребителей. (Конечно, вы также можете попытаться оптимизировать потребителя, но это уже другая история ...)
Добавлено для ответа на комментарий:
Когда потребитель - от данная группа - использует раздел, он будет продолжать это делать и будет единственным из группы, использующей этот раздел, даже если многие другие потребители из той же группы простаивают. В одной группе раздел никогда не разделяется между потребителями. (Если потребитель выходит из строя, другой продолжит работу, и если новый потребитель войдет в группу, произойдет перебалансировка, но в любом случае только один потребитель будет работать с одним разделом в данный момент времени.)
Таким образом, один из подходов, как сказано в вашем комментарии, будет равномерно распределять нагрузку по разделам. Другой подход - иметь тему, посвященную дорогостоящим работам, чтобы у нее было много разделов и много потребителей; и пусть тема для недорогих рабочих мест вызывает лихорадку у потребителей.
Последний подход, который я бы не рекомендовал, состоял бы в том, чтобы не использовать функции группы потребителей и управлять собой, как вы потребляете из Kafka, используя методы назначения и поиска от потребителя. (См. KafkaConsumer JavaDoc для получения дополнительной информации). Spark Structured Streaming, например, использует этот подход, но он намного сложнее ...
Ваше понимание относительно перегородок и потребителей неверно.
Если у вас есть N разделов, то вы можете иметь до N потребителей в одной и той же группе потребителей, каждый из которых читает из одного раздела. Если у вас меньше потребителей, чем у разделов, то некоторые из них будут читать из более чем одного раздела. Кроме того, если у вас больше потребителей, чем разделов, некоторые из них будут неактивны и вообще не будут получать сообщений.
Если у вас есть один потребитель на раздел, то некоторые разделы могут получать больше сообщений, и именно поэтому некоторые из ваших потребителей могут бездействовать, в то время как другие могут обрабатывать некоторые сообщения. Обратите внимание, что сообщения не всегда вставляются в тематические разделы в циклическом порядке, поскольку сообщения с одинаковым ключом помещаются в один и тот же раздел.