Pracowałem nad projektem CQRS (mój pierwszy) przez ostatnie 9 miesięcy, który był ciężką krzywą uczenia się. Obecnie używam doskonałego EventStore JOliver w moim modelu zapisu i przy użyciu PostGresSql dla mojego modelu odczytu.CQRS przy użyciu Redis MQ
baz Zarówno mój odczytu i zapisu są na tym samym komputerze, co oznacza, że po wprowadzeniu zmiany do bazy danych zapisu, w tym samym synchronicznego wywołania zmiana jest wykonana z modelem odczytu.
Jak uczyłem CQRS poczułem to był najlepszy sposób, aby przejść jak miałem żadnego doświadczenia z kolejki komunikatów/usług ram autobusowych takich jak MassTransit, NServiceBus itp
Jestem teraz w punkcie, z większością moja architektura w celu wprowadzenia struktury kolejki wiadomości.
Dziś natknąłem się na Redis MQ, który jest częścią ServiceStack i ponieważ już korzystamy z ServiceStack dla naszych klientów HTTP opartych na Reszcie, wydaje się, że jest to właściwa droga.
Moje pytanie jest więcej o zrozumienie tego, co muszę wiedzieć (lub jeśli mam żadnych nieporozumień) w celu wdrożenia Redis MQ i czy Redis MQ jest właściwym wyborem?
Teraz z tego co rozumiem, użyłbym Redis MQ jako trwałe kolejki pomiędzy zapisu i odczytu bazy danych. Gdy mój sklep z wydarzeniami zarejestruje, że coś się wydarzyło w mojej domenie, opublikuje go w Redis MQ. Usługi nasłuchujące zdarzeń/komunikatów otrzymałyby zdarzenie/wiadomość od Redis MQ i po jej przetworzeniu (tj. Zaktualizowaniu lub zapisaniu do modelu odczytu), powiadomienie/odpowiedź wraca do magazynu zdarzeń, aby poinformować magazyn zdarzeń, że wiadomość została odebrana i przetworzona przez detektora/subskrybenta.
Czy to brzmi poprawnie?
Również byłoby architektura Redis MQ dać mi wszystko, co oferują NSB, RavenDB, MassTransit itp?
Ponadto będę wdrażać na serwerach Windows 2008 i 2003. Czy system Redis jest stabilny dla tych systemów operacyjnych?
Dzięki za pomoc. Muszę zdecydować, która kolejka trwałego przesyłania wiadomości ma być używana w moim przypadku, ale myślę, że muszę spędzić kilka dni, wciąż ucząc się tego, co najlepsze. Co byś zasugerował? :) –
To, czego używałem w produkcji najczęściej to NSB + MSMQ, ale MT jest równie zdolne, choć brakuje w nim dokumentów. Sprawdź licencję na NSB, aby sprawdzić, czy się wyrównuje. Redis MQ wydaje się interesujący, ale nie może komentować. Podsumowując, wypróbuj kilka różnych rzeczy, aby lepiej zrozumieć, w jaki sposób przesyłanie wiadomości jest problemem infrastrukturalnym, i nie powinno się w nich kręcić w pozostałej części aplikacji. – eulerfx
Jeszcze raz dziękuję za twoją mądrość :). Mam pewne pojęcie o tym, co oferuje NSB, po prostu muszę zobaczyć, w jaki sposób Redis MQ robi takie rzeczy (ponawianie nieudanych wiadomości, jak przeglądać nieudane wiadomości lub wyświetlać kolejkę wiadomości, aby zobaczyć, jakie wiadomości mają być przetwarzane itp.). Muszę popatrzeć na licencje NSB, nie mamy za dużo wiadomości, a ponadto na tym etapie bazy danych do odczytu i zapisu znajdują się na tym samym komputerze. –