Przewodnik po operacjach QPID

Edge dla Private Cloud w wersji 4.52.02 jest wyposażona w Qpid Broker-J 8.0.6. Na tej stronie opisano kwestie dotyczące pamięci i dysku w komponencie apigee-qpidd w Edge dla Private Cloud (z brokerem opartym na języku Java). Poniższe sekcje dotyczą konkretnego przypadku użycia Apigee Qpid i wyjaśniają, jak dostroić Qpid za pomocą mechanizmów konfiguracyjnych Apigee.

Qpid w Apigee

W Apigee Qpid jest używany w 2 głównych przepływach pracy:

  • Analityka
  • Generowanie przychodu

W obu tych przepływach pracy procesor wiadomości generuje wiadomości, które są zbierane w partie i przekazywane do Qpid. W przypadku Analytics wiadomości są odczytywane przez serwer Qpid, a na potrzeby generowania przychodu – przez serwer oceny (część serwera zarządzania). Po przeczytaniu wiadomości grupowe są sprawdzane i przetwarzane.

W poniższych sekcjach opisano zalecane konfiguracje pamięci i dysku z Qpid. Te konfiguracje bazują na pojedynczej wiadomości o rozmiarze 2 KB, która służy do generowania statystyk i generowania przychodu. Jeśli domyślny rozmiar wsadu wynosi 50, każda wiadomość w Qpid będzie miała około 100 KB. Apigee umożliwia serwerom proxy modyfikowanie i dodawanie dodatkowych informacji do wiadomości (analizy lub zarabianie). W skrajnych przypadkach może to znacznie zmienić rozmiar jednej wiadomości i ogólnej wiadomości zbiorczej w Qpid. Chociaż ogólne zalecenia dotyczące pamięci i dysku zawarte w poniższych sekcjach obowiązują nawet w takich przypadkach, aby zapewnić płynne działanie, konieczne może być wprowadzenie dodatkowych poprawek w Qpid.

Pamięć

Broker Qpid korzysta z 2 typów pamięci: pamięci poza stertą i pamięci sterty. Qpid przechowuje wiadomości w pamięci niesprawnej i wykorzystuje pamięć stosu do własnych zadań wewnętrznych, kierowania wiadomości do kolejek czy giełd itp. W większości przypadków Apigee zaleca zachowanie współczynnika 3:1 między pamięcią poza stosu i na stercie dla Qpid Broker.

Komunikaty w pamięci poza stertą są zachowywane na dysku. Dodatkowo, jeśli całkowite wykorzystanie pamięci poza stertą przekroczy określony próg, Qpid jest skonfigurowany tak, by przenosić wiadomości na dysk.

Domyślnie Apigee oblicza stertę i pamięć poza stertą usługi Qpid Broker na podstawie dostępnej pamięci w węźle. Skrypty Apigee mają ograniczony limit 4 GB na stertę i pamięć poza stertą brokera Qpid. Jeśli chcesz zastąpić te limity, możesz użyć dwóch poniższych konfiguracji, aby ustawić własne wartości dla stosu i pamięci zewnętrznej Qpid.

  • Konfiguracja pamięci sterty: bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m
  • Konfiguracja pamięci poza stertą: bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m

Informacje o zastępowaniu konfiguracji znajdziesz w sekcji Jak zmienić konfigurację Qpid.

Więcej informacji znajdziesz w dokumentacji serwera Apache Qpid dla pamięci.

Dysk

Katalog danych brokera Qpid to $APIGEE_ROOT/data/apigee-qpidd. Logi Qpid Broker są przechowywane w regionie $APIGEE_ROOT/var/log/apigee-qpidd.

Wydajność systemu plików hostującego katalog danych jest kluczem do ogólnej wydajności brokera. Aby uzyskać najlepszą wydajność, wybierz urządzenie, które ma niewielkie opóźnienia i nie jest używane przez inne aplikacje.

Broker Qpid przechowuje wiadomości w katalogu danych. Domyślnie broker akceptuje wiadomości, dopóki system plików hostujący katalog danych nie będzie zapełniony w 80%. Możesz zmienić ten próg, zastępując konfigurację przedstawioną w poniższym przykładzie w każdym węźle Qpid.

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

W tym przykładzie broker odrzuca nowe wiadomości, gdy system plików jest zapełniony w 60%.

Jak zmienić konfigurację Qpid

Aby zmienić konfigurację Qpid:

  1. Utwórz lub zmodyfikuj ten plik:
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. W razie potrzeby dodaj, usuń lub zmień konfigurację. Aby na przykład zmienić maksymalną ilość pamięci stosu Qpid Broker na 6 GB, dodaj w pliku to zastąpienie konfiguracji:
    bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
  3. Zapisz zmiany i upewnij się, że plik należy do użytkownika apigee i może go odczytać:
    chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
  4. Ponownie uruchom proces qpidd:
    ponowne uruchomienie apigee-service apigee-qpidd