2011-06-20 23 views
9

Szukam systemu kolejkowania, w którym wielu różnych subskrybentów może wyciągnąć elementy ze scentralizowanej kolejki. Wiadomości będą bardzo lekkie, ale potrzebuję czegoś, co jest trwałe i bardzo szybkie, ponieważ objętość wiadomości będzie duża. MSMQ jest trochę ciężki i szukam czegoś lekkiego. Propozycje?. Szybka trwała kolejka .NET

+0

tabela bazy danych (z odpowiednimi mechanizmami blokującymi)? –

+0

Obecnie korzystamy z tabeli bazy danych. Ale jest dość powolny. Potrzebuję czegoś z nieco większą przepustowością i mam nadzieję, że funkcjonalność ... – Matt

+0

"Ale to dość powolne." - nie powinno tak być. co nazywacie powolnym? –

Odpowiedz

2

Myślę, że tutaj pytanie brzmi: czy "potrzebujesz" wytrwałości? Jeśli potrzebujesz ochrony przed duplikatami, wieloma klientami i utratą ważności, będziesz zmuszony do stosowania schematu blokowania dla menedżera kolejek, co będzie kosztować wydajność. Sam persistance będzie cię ranić, chyba że umieścisz pamięć kolejki na szybkim udziale plików.

Jeśli możesz ponownie zaktualizować aplikację, aby przetrwać awarię kolejki (zachowaj kanał na serwerze lub uzyskaj architekturę żądania/odpowiedzi dla wiadomości), wtedy możesz obejść potrzebę wytrwałości. Jeśli to zrobisz, okaże się, że twój menedżer kolejek działa wyłącznie w pamięci i będzie bardzo szybki.

+0

Interesujące. Aplikacja, którą budujemy, jest bardzo intensywna dla procesorów, wyobrażałem sobie scenariusz, w którym jeden serwer działa jako pośrednik do wykonywania zadań na inne "przetwarzające" serwery. W tym scenariuszu po prostu potrzebuję, aby kolejka na brokerze była odporna. Czy masz punkt odniesienia lub przykłady z wytycznymi do budowania czegoś takiego? – Matt

+0

Mapa Zmniejsz wzór z google? – Spence

+0

http://labs.google.com/papers/mapreduce.html – Spence

3

Jest naprawdę fajny projekt na codeproject. To lekka alternatywa dla MSMQ. Możesz użyć magazynu trwałości wybranego przez siebie, domyślnie używa Sqlite. To jest naprawdę dobre.