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

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

Qpid в Apigee

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

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

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

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

Память

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

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

По умолчанию Apigee рассчитывает память кучи и вне кучи брокера Qpid на основе доступной памяти на узле. Скрипты 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: $APIGEE_ROOT/data/apigee-qpidd. Журналы брокера Qpid хранятся в $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