2010-02-18 16 views
15

Jestem w trakcie pisania systemu kolejki komunikatów.System kolejki komunikatów

Moje pytanie brzmi ... Czy lepiej jest zrobić kolejkę z plikami lub w bazie danych?

Gdybym miał wybrać bazę danych, musi co tydzień sprawdzać nowe zlecenia, co wydaje mi się nieco kłopotliwe?

Jeśli chodzi o pliki, wydaje mi się, że po prostu stale monitorujesz folder i wykonujesz na jego podstawie?

BR,

Odpowiedz

28

NIE reinventthewheel.

[Edytuj: zaktualizowany na 2014 r., Teraz łączący się z króliczym MQ, ponieważ Ayende przeniosła się do tworzenia baz danych dokumentów, a nie kolejkami komunikatów, ale potem znowu włączono RabbitMQ. I nie byłoby pisania tego, ale teraz posty potrzeba 30 znaków więc muszę blabber trochę.]

2

To zależy od Twoich potrzeb, ale jeśli trzeba stać w kolejce do wielu wiadomości jako jednej grupy, będziesz potrzebować jakiegoś wsparcia transakcyjnego. W takim przypadku baza danych jest Twoim przyjacielem.

3

Jak może zajrzeć do MSMQ

+0

Ponieważ nie jesteś często w meta, komentuję tutaj, aby poinformować Cię, że odpowiedziałem na Twój wpis dotyczący tego pytania w meta. –

2

Piszesz system kolejki komunikatów, ponieważ chcemy, aby napisać wiadomość system kolejkowy; czy to tylko część rozwiązania większego problemu?

Proponuję nie pisać nowego systemu kolejki komunikatów. Możesz użyć MSMQ lub czegoś innego poza półką.

5

Jakie są kryteria wyboru "lepsze"? wydajność? skalowalność? niezawodność? koszt?

Podstawowe kompromisy są:

Database - wsparcie transakcyjne, gwarantuje integralność (via ograniczeń), bogatsza wsparcie zapytań, prawdopodobnie będzie przeskalować lepiej (w zależności od implementacji)

plików - tańsze, prostsze, mniej części ruchomych (przynajmniej początkowo)

może warto spojrzeć na istniejące rozwiązania - najpierw MSMQ, SQL Server broker, bibliotek open source, takich jak kolejki Rhino (http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)

Powiązane problemy