to powstaje pytanie, natknąłem niektórych wspomina (takich jak this), na temat korzystania z oprogramowania, takich jak wiadomości ZeroMQ alongwith Redis, ale ciągle słyszę o Redis sam użył messaging- system. Tak więc, jeśli Redis jest używany wraz z innymi systemami komunikacyjnymi, czy oznacza to, że Redis ma poważne braki, gdy jest używany jako system komunikacyjny?Osiągnięcie JMS/AMQP wzory wykorzystujące wiadomości Redis
Chociaż zastosowanie Redis do buforowania i pub/sub jest dla mnie jasne, że nie jest jasne, czy Redis można stosować w miejscu z pełnoprawnym systemem przesyłania wiadomości, takie jak JMS, AMQP lub ZeroMQ.
Czy w ramach usługi Redis, obsługującej wyłącznie standardy i koncentrując się wyłącznie na funkcjach/funkcjach, obsługiwane są wszystkie modele/modele wiadomości wymagane w systemie przesyłania wiadomości?
Wzory wiadomości mówię to:
- RPC/Request-odpowiedź (an example używając ActiveMQ/JMS i another użyciu RabbitMQ/AMQP)
- kolejki Pipeline/pracy (raz i na bieżąco po zużyciu każdej wiadomości)
- Emisja (wszyscy subskrybowali kanał)
- Multicast (filtrowanie wiadomości pod adresem s erver w oparciu o selektory konsumentów)
- Jakikolwiek inny wzorzec przesyłania wiadomości?
Jeśli tak, to wydaje się, że Redis rozwiązuje dwa (być może więcej) aspekty naraz: buforowanie i przesyłanie wiadomości.
Patrzę na to w kontekście aplikacji internetowej wspieranej przez serwer Java/Java EE. I patrzę na to nie z punktu widzenia proof-of-concept, ale z dużej skali rozwoju oprogramowania.
Edit1:
użytkownik: 791406 zadał ważne pytanie:
"? Kogo to obchodzi, jeśli Redis obsługuje tych wzorców; Redis będzie spełniać swoją SLA i QoS potrzebuje"
Pomyślałem, że lepiej jest podać ten szczegół w ramach pytania zamiast w sekcji komentarzy.
Moje bieżące potrzeby są mniej związane z SLA i QOS, a więcej z wyborem narzędzia do mojej pracy (wiadomości), z którego mogę korzystać nawet wtedy, gdy moje wymagania będą rosły (rozsądnie) w przyszłości. Na początku rozpoczynam od uproszczonych wymagań i wszyscy wiemy, że wymagania zwykle rosną. I NO, Nie szukam jednego narzędzia, które to wszystko. Chcę tylko wiedzieć, czy Redis spełnia zwykłe wymagania, jakich oczekuje się od systemu przesyłania wiadomości, np. ActiveMQ/RabbitMQ. Oczywiście, jeśli moje potrzeby związane z SLA/QOS będą ekstremalne/ekscentryczne, potrzebuję specjalnego narzędzia, aby to zaspokoić. Na przykład: W niektórych przypadkach ZeroMQ można było wybrać na RabbitMQ ze względu na specyficzne wymagania SLA. Nie mówię o takich specjalnych wymaganiach. Koncentruję się na średnich wymaganiach przedsiębiorstw.
Obawiałem się (w oparciu o moje małe zrozumienie), że mimo iż redis może być podstawowym narzędziem do dzisiejszych potrzeb komunikacyjnych, może to być niewłaściwe narzędzie do prawdziwej pracy z wiadomościami w przyszłości. Mam doświadczenie z systemami przesyłania wiadomości, takimi jak ActiveMQ/RabbitMQ i wiem, że mogą one być używane do prostych (rozsądnie) złożonych potrzeb komunikacyjnych.
Edit2:
Witryna Redis wspomina "Redis is often used as a messaging server" ale jak osiągnąć wzory wiadomości nie jest jasne.
Salvatore sanfilippo wymienia Redis users tend to use it as a database, as a messaging bus, or as a cache. W jakim stopniu może służyć jako "autobus komunikacyjny" nie jest jasne.
Kiedy próbuje dowiedzieć się, jakie wymagania wiadomości JMS że Redis doesnt wsparcia, natknąłem się na coś, Redis obsługuje ale JMS doesnt: subskrypcje wzorca dopasowania tj Klienci mogą zapisać się do wzorców glob stylu w celu aby odbierać wszystkie wiadomości wysłane do nazw kanałów pasujących do danego wzorca.
Wnioski:
zdecydowałem się użyć JMS dla moich potrzeb komunikacji i Redis używać do buforowania.
+1 dla „Mimo, że będę oferować moje wejście w jaki sposób można uczynić tę decyzję”! To było naprawdę pomocne. Dodam więcej szczegółów do mojego pytania na podstawie twoich komentarzy. – brainOverflow
IMHO, punkty, o których wspomniałeś w punkcie "Wysoce niezawodne/trwałe/trwałe wiadomości" to wszystkie wymagania, które powinien zapewniać prawdziwy system przesyłania wiadomości. To, czy użytkownik tego systemu umożliwia to, czy nie, jest innym pytaniem. Dzisiaj mogę wybrać nietrwały komunikat. Jutro mogę potrzebować trwałych wiadomości w niektórych kolejkach. Nie chcę wtedy być zmuszonym do innego rozwiązania do przesyłania wiadomości. Właśnie dlatego eksploruję komunikaty Redis w.r.t. – brainOverflow
Właśnie o to mi chodziło. Wszystkie te funkcje są standardowymi ofertami od dojrzałych platform komunikacyjnych, ale nie z redis, więc jeśli potrzebujesz niezawodności, trwałości, trwałości itp., Redis może nie być najlepszym wyborem, ale znowu jest oparty na twoich potrzebach. PS: Nie ma czegoś takiego jak "średnie" wymagania przedsiębiorstw, wszystkie wymagania, duże i małe, są specyficzne :-) – raffian