Руководство по работе с QPID

Edge для частного облака версии 4.52.01 поставляется с Qpid Broker-J 8.0.6. На этой странице описаны рекомендации по памяти и диску для компонента apigee-qpidd Edge для частного облака (с брокером на основе Java). Разделы ниже относятся конкретно к варианту использования Apigee Qpid и объясняют, как настроить Qpid с помощью механизмов настройки Apigee.

Qpid в Apigee

В Apigee Qpid используется в двух основных рабочих процессах:

  • Аналитика
  • Монетизация

В обоих этих рабочих процессах процессор сообщений генерирует сообщения, которые собираются в пакеты и передаются в Qpid. Для Analytics сообщения читает Qpid-сервер; для монетизации они читаются Рейтинговым Сервером (частью управляющего сервера). После прочтения пакетные сообщения не группируются и не принимаются.

В следующих разделах описаны рекомендуемые конфигурации памяти и диска с помощью Qpid. Эти конфигурации основаны на одном сообщении размером 2 КБ для аналитики или монетизации. При размере пакета по умолчанию 50 каждое сообщение в Qpid будет иметь размер примерно 100 КБ. Apigee позволяет прокси-серверам изменять и добавлять дополнительную информацию к сообщению (аналитика или монетизация). В крайних случаях это может существенно изменить размер одного сообщения и всего пакетного сообщения в Qpid. Хотя общие рекомендации относительно памяти и диска, приведенные в разделах ниже, справедливы даже в таких случаях, вам может потребоваться выполнить дополнительные настройки Qpid, чтобы обеспечить бесперебойную работу.

Память

Qpid Broker использует два типа памяти: память вне кучи и память в куче. Qpid хранит сообщения в памяти вне кучи и использует память кучи для своих внутренних задач, направления сообщений в очереди и обмены и т. д. В большинстве случаев Apigee рекомендует сохранять соотношение 3:1 между памятью вне кучи и кучей для Qpid-брокер.

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

По умолчанию Apigee вычисляет память в куче и вне кучи Qpid Broker на основе доступной памяти на узле. Сценарии Apigee имеют мягкое ограничение в 4 ГБ для кучи и внекучной памяти Qpid Broker. Если вы хотите переопределить эти ограничения, вы можете использовать две конфигурации ниже, чтобы установить свои собственные значения для кучи и внекучной памяти Qpid.

  • Конфигурация динамической памяти: bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m
  • Конфигурация для памяти вне кучи: bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m

См. раздел «Как изменить конфигурацию Qpid» для получения информации о том, как переопределить конфигурации.

Для получения дополнительной информации см. Справочник по Apache Qpid для памяти .

Диск

Каталог данных Qpid Broker — $APIGEE_ROOT/data/apigee-qpidd . Журналы Qpid Broker хранятся в $APIGEE_ROOT/var/log/apigee-qpidd .

Производительность файловой системы, в которой находится каталог данных, является ключом к производительности Broker в целом. Для достижения наилучшей производительности выберите устройство с низкой задержкой и не используемое другими приложениями.

Брокер Qpid сохраняет свои сообщения в каталоге данных. По умолчанию Брокер будет принимать сообщения до тех пор, пока файловая система, в которой находится каталог данных, не заполнится на 80%. Вы можете изменить это пороговое значение, переопределив конфигурацию, показанную в примере ниже, на каждом узле Qpid.

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

В этом примере брокер отклоняет новые сообщения, когда базовая файловая система заполнена на 60%.

Как изменить конфигурацию Qpid

Чтобы изменить конфигурацию Qpid:

  1. Создайте или отредактируйте следующий файл:
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. При необходимости добавьте, удалите или измените конфигурацию. Например, чтобы изменить максимальный размер кучи Qpid Broker на 6 ГБ, добавьте в файл следующее переопределение конфигурации:
    bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
  3. Сохраните изменения и убедитесь, что файл принадлежит и доступен для чтения пользователю apigee :
    chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
  4. Перезапустите процесс qpidd :
    apigee-service apigee-qpidd restart