Class RedisRingBufferMessageStore
java.lang.Object
de.otto.synapse.messagestore.redis.RedisRingBufferMessageStore
- All Implemented Interfaces:
de.otto.synapse.messagestore.MessageStore,java.lang.AutoCloseable
@Beta
public class RedisRingBufferMessageStore
extends java.lang.Object
implements de.otto.synapse.messagestore.MessageStore
Redis-based implementation of a WritableMessageStore.
The store can be configured like a ring-buffer to only store the latest N messages.
-
Constructor Summary
Constructors Constructor Description RedisRingBufferMessageStore(java.lang.String name, int batchSize, int ringBufferSize, org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.String> stringRedisTemplate)RedisRingBufferMessageStore(java.lang.String name, int batchSize, int ringBufferSize, org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.String> stringRedisTemplate, de.otto.synapse.translator.Encoder<java.lang.String> messageEncoder, de.otto.synapse.translator.Decoder<java.lang.String> messageDecoder) -
Method Summary
Modifier and Type Method Description voidadd(de.otto.synapse.messagestore.MessageStoreEntry entry)voidclear()voidclose()java.util.Set<java.lang.String>getChannelNames()com.google.common.collect.ImmutableSet<de.otto.synapse.messagestore.Index>getIndexes()de.otto.synapse.channel.ChannelPositiongetLatestChannelPosition(java.lang.String channelName)longsize()java.util.stream.Stream<de.otto.synapse.messagestore.MessageStoreEntry>stream()java.util.stream.Stream<de.otto.synapse.messagestore.MessageStoreEntry>stream(de.otto.synapse.messagestore.Index index, java.lang.String value)Deprecated.Unsupported operation.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.otto.synapse.messagestore.MessageStore
getLatestChannelPosition, isCompacting
-
Constructor Details
-
RedisRingBufferMessageStore
public RedisRingBufferMessageStore(java.lang.String name, int batchSize, int ringBufferSize, org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.String> stringRedisTemplate)- Parameters:
name- the name of the message storebatchSize- the size of the batches used to fetch messages from RedisringBufferSize- the maximum number of messages stored in the ring-bufferstringRedisTemplate- the RedisTemplate used to access Redis
-
RedisRingBufferMessageStore
public RedisRingBufferMessageStore(java.lang.String name, int batchSize, int ringBufferSize, org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.String> stringRedisTemplate, de.otto.synapse.translator.Encoder<java.lang.String> messageEncoder, de.otto.synapse.translator.Decoder<java.lang.String> messageDecoder)- Parameters:
name- the name of the message storebatchSize- the size of the batches used to fetch messages from RedisringBufferSize- the maximum number of messages stored in the ring-bufferstringRedisTemplate- the RedisTemplate used to access RedismessageEncoder- the encoder used to encode messages into the string-representation stored in RedismessageDecoder- the decoder used to decode messages from the string-representation stored in Redis
-
-
Method Details
-
add
public void add(de.otto.synapse.messagestore.MessageStoreEntry entry)- Specified by:
addin interfacede.otto.synapse.messagestore.MessageStore
-
getChannelNames
public java.util.Set<java.lang.String> getChannelNames()- Specified by:
getChannelNamesin interfacede.otto.synapse.messagestore.MessageStore
-
getIndexes
public com.google.common.collect.ImmutableSet<de.otto.synapse.messagestore.Index> getIndexes()- Specified by:
getIndexesin interfacede.otto.synapse.messagestore.MessageStore
-
getLatestChannelPosition
public de.otto.synapse.channel.ChannelPosition getLatestChannelPosition(java.lang.String channelName)- Specified by:
getLatestChannelPositionin interfacede.otto.synapse.messagestore.MessageStore
-
stream
public java.util.stream.Stream<de.otto.synapse.messagestore.MessageStoreEntry> stream()- Specified by:
streamin interfacede.otto.synapse.messagestore.MessageStore
-
stream
public java.util.stream.Stream<de.otto.synapse.messagestore.MessageStoreEntry> stream(de.otto.synapse.messagestore.Index index, java.lang.String value)Deprecated.Unsupported operation.Guaranteed to throw an exception and leave the message store unmodified.- Specified by:
streamin interfacede.otto.synapse.messagestore.MessageStore- Throws:
java.lang.UnsupportedOperationException- always
-
size
public long size()- Specified by:
sizein interfacede.otto.synapse.messagestore.MessageStore
-
close
public void close()- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacede.otto.synapse.messagestore.MessageStore
-
clear
public void clear()
-