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

Edge for Private Cloud версии 4.54.00 поставляется с Qpid Broker-J 10.0.1. В этой статье описываются требования к памяти и диску для компонента apigee-qpidd в Edge для частного облака (с брокером на основе Java). В разделах ниже описывается, как настроить Qpid с помощью механизмов конфигурации Apigee.

Qpid в Apigee

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

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

В обоих случаях обработчик сообщений создает сообщения, которые собираются в пакеты и отправляются в Qpid. В Аналитике сообщения считываются сервером Qpid, а в Монетизации – сервером рейтинга (частью сервера управления). После прочтения пакетные сообщения распаковываются и обрабатываются.

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

Память

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

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

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

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

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

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

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

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

Чтобы изменить конфигурацию Qpid, выполните следующие действия:

  1. Создайте или измените следующий файл:
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. Добавьте, удалите или измените конфигурацию. Например, чтобы изменить максимальный объем памяти кучи брокера Qpid на 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