2009-11-04 12 views
5

Pracuję nad (głównie) projektem Perl i chcę użyć kolejki komunikatów, aby odizolować procesy od siebie nawzajem. Mam przepływ pracy takiego:Jaka jest najszybsza kolejka komunikatów IPC/Perl dla jednego komputera?

input -> odbiornik -> Procesor (y) -> Output (s)

muszę obsłużyć kilkaset transakcji/sekundę, więc przyspieszyć mój największy motywator. Jaki jest najszybszy system kolejki komunikatów dla tego typu instalacji?

Wszystkie moje procesy działają na tym samym komputerze, więc mogę używać gniazd UNIX lub plików tymczasowych, jeśli oznacza to lepszą wydajność.

Do tej pory moje dwa ulubione to IPC :: DirQueue i beanstalkd. Ktoś ma doświadczenie z obydwoma i może wyciągać wnioski o tym, który jest szybszy?

Co jeszcze jest dostępne, aby utworzyć superszybką kolejkę roboczą na jednym komputerze?

Odpowiedz

3

Nie wiem o IPC :: Dirqueue lub beanstalkd, ale odniosłem sukces z spread (z modułami Spread lub Spread::Message). Łatwo jest wykonywać wiele procesów (z innym uruchomionym demonem), a także wiele maszyn. Fajną rzeczą jest to, że skoro jest on oparty na grupach, możesz łatwo dołączyć innego słuchacza, jeśli chcesz robić takie rzeczy, jak logowanie, statystyki lub debugowanie bez konieczności zmiany (lub spowolnienia) procesorów.

+2

Nie mogę pomóc, ale dopingować za to. Zadowolony użytkownik przez kilka lat na mojej poprzedniej pracy, dostał nawet trochę płatnego niestandardowego wsparcia od autorów - światowej klasy dookoła. –

+0

Dzięki za to. Miałem podobne zadania jak OP wcześniej i nigdy nie natknąłem się na rozprzestrzenianie. Dam mu wir, kiedy będę miał okazję! – tsee

Powiązane problemy