После первого понимания механизма разделения производства мы продолжаем рассматривать еще одну важную машину производства.
сжатие
说我们可以,说一个题论上上是 Кафка 上面在了变发,又是在上下载可去皚
В дополнение к Производитель также может быть посредником, брокер также может быть посредником, но такая ситуация не является распространенной. Жестикулярная ситуация, в которой мы находимся в следующем 聊。倂
Метод сжатия в Producer также очень прост: при настройке атрибутов Producer compression.type Параметры можно задать, например мы в Producer, включаем сжатие gzip, можно настроить так:
props.put("compression.type", "gzip");
В Kafka сжатие осуществляется не для одного сообщения, а для пакета, так как же можно повысить эффективность сжатия? Ответ — увеличить размер партии. Поскольку суть сжатия заключается в уменьшении объема путем обнаружения повторяющегося шаблона между данными, чем больше данных накапливается в пакете, тем больше вероятность повторения и тем больше вероятность сжатия. Поэтому после включения сжатия нам также необходимо установить разумные batch.size 和 linger.ms Эти два параметра.
Повторно сжать
Ранее Kafka Broker также можно было сжимать, но лишь в некоторых сценариях можно будет спроектировать Kafka.
Потому что Брокерская компания работает в режиме реального времени, обслуживает брокера机, 再去分。我们把报解去縋逇过縋縀游成, 再去分
Сильное сжатие в основном происходит в следующих трех сценариях:
сцена первая
Алгоритм сжатия не соответствует, например, Producer использует алгоритм gzip, но Broker настроен. compression.type=lz4, в этой ситуации брокеру необходимо выполнить сильное сжатие。
сцена 2
Преобразование версии формата сообщения. Kafka один раз обновил версию формата сообщения в версии 0.11.0.0. Новая версия сообщения унифицирует хранение пакета сообщений.
сцена третья
Сторона брокера вводит метку времени. Kafka поддерживает два типа меток времени: CreateTime, который устанавливается непосредственно производителем. log.message.timestamp.type,我们是电影的CreateTime в режиме реального времени.
Наконец, сильное сжатие очень потребляет ресурсы процессора Broker®, мы хотим максимально избежать сильного сжатия Broker®, позволив использовать его на диске только для операций чтения и записи. Если возникла проблема с ресурсами ЦП Broker, вы можете проверить, не вызвана ли она сильным сжатием в соответствии с тремя приведенными выше сценариями.
алгоритм сжатия
Kafka поддерживает несколько алгоритмов сжатия, выбор подходящего алгоритма сжатия на самом деле является балансом между степенью сжатия и загрузкой ЦП. Мы сравниваем несколько алгоритмов сжатия через таблицу.
| алгоритм | степень сжатия | Потребление процессора | скорость сжатия | применимый сценарий |
|---|---|---|---|---|
| GZIP | 高 | 高 | медленный | Конфиденциальное хранилище, ограниченная пропускная способность и др. |
| живой | 中等 | ниже | 快 | Хороший баланс между скоростью и ресурсами |
| LZ4 | 中等偢高 | низкий | 极快 | 对这些方度小家的Расчеты в реальном времени, торговля и т. д. |
| Зстд | 高,与 GZIP близко | 中等 | быстрее | Подходит для большинства общих сценариев |
В целом в настоящее время используется 4 алгоритма. Zstd представлен в версии Kafka 2.1.0, как современный сбалансированный алгоритм, его можно использовать по умолчанию.
краткое содержание
Наконец, чтобы подвести итог содержанию этого текста, мы сначала рассказали, как Kafka используется для сжатия и как его включить. Затем мы представили 3 сценария сильного сжатия: сильное сжатие приведет к резкому увеличению нагрузки на процессор брокера. Наконец, мы сравнили поддержку Kafka.
Наконец, я хочу задать один вопрос: Потребительский вопрос: Производитель использовал сжатый алгоритм? Заинтересованные студенты приглашаются вместе с вами.