Redis je hodně symatický systém jako key-value storage, ale snese Streams srovnání například s Kafkou? Proč se ptám - Kafku používáme, ale devops team má pořád nějaké problémy se stabilitou a výpadky. Navíc naše retention policy je pár desítek hodin (48 atd.), takže by takový "nápor" klidně mohl zvládnout i Redis, který tam stejně už máme jako cache.
Používá prosím někdo ze čtenářů Streams aby mohl nakopnout, jestli je to doable a dobrý nápad?
Pokud jde čistě o výkon, tak je Redis víc než dostačující. Provozuju jednoduchý "broker" v Redisu 4, tzn. pomocí lpush/rpop s provozem přes 3000 zpráv za sekundu (komunikuje tak pár microservices, takže takových front je na jednom serverů několik).
Pochopitelně, nejsou dostupné další pokročilé vlastnosti (potvrzení doručeni, generovaní id, fan-out apod.). Ale právě kvůli efektivitě jsem přešel z RabbitMQ na Redis.
No právě, 1-2 zprávy za sekundu není žádnej extra datovej tok a přece jsou tam pořád pro mě nepochopitelné výpadky a rebalancing konzumentů (ale to je problém trošku někde jinde). Samořejmě může být problém ve stylu depoymentu (to neovlivním - jinej tým v jiné geolokaci, který to prý MUSI dělat), ale stejně bych měl rád v záloze nějaké lehkotonážní řešení stylu Redis.
PS: to, že se o infra služby stará jiný tým, by teoreticky mělo být pro nás lepší a méně náročné, ale mnohdy je tedy opak pravdou.
Jo, zvládne. Mám Redis jako lokální cache mezi aplikací a Kafkou. Apka cpe data dp Redis streamů na lokálním embedded PC, vedle toho běží druhá, co ty Redis streamy čte, cpe do centrálního Kafka clusteru a s nějakým zpožděním umazává v lokálním Redisu (plus se z těch streamů jedou data i do dalších lokálních komponent, než jen replikace do Kafky). Zprávy pár set bajtů JSONy, počty dosahují desítky / sec, streamů je také povícero (do 500 vedle sebe).
Jenom je třeba mít na paměti, že se to Redisu musí celé vejít do paměti. :-)
Celé to je v C. Jediný problém je ta librdkafka a udržení spojení na Kafla cluster s TLS (nějaký chaos v knihovně, když se používají Kafka transakce a zároveň TLS). :-(
Na Redis straně je blbé jen to odmazávání starých dat v streamu aktuálně (pokud chci odmazat data starší jak nějaký čas), bude řešit uspokojivě verze 6.2.