存储工厂 API

一个 StoreFactory 选择 会话数据存放的位置EventStore 分发事件的方式。 存储与事件同步是 独立的,因此您可以自由组合后端。


MemoryStoreFactory

MemoryStoreFactory()

使用以下方式创建工厂 内存存储 和默认的 MemoryEventStore(内存事件存储)。 用于 单节点无分发 设置。

StoreFactory sf = new MemoryStoreFactory();
// 内存存储 + 本地事件

MemoryStoreFactory(EventStore eventStore)

使用以下方式创建工厂 内存存储 以及一个 自定义 EventStore 用于分布式同步。

EventStore es = new KafkaEventStore(...);
StoreFactory sf = new MemoryStoreFactory(es);
// 本地存储 + 分布式事件(Kafka)

HazelcastStoreFactory

HazelcastStoreFactory(HazelcastInstance hazelcastClient)

使用以下方式创建工厂 Hazelcast 存储 和默认的 HazelcastEventStore.


HazelcastStoreFactory(HazelcastInstance hazelcastClient, EventStore eventStore)

使用以下方式创建工厂 Hazelcast 存储 以及一个 自定义 EventStore 后端。


RedisStoreFactory

RedisStoreFactory(RedissonClient redissonClient)

使用以下方式创建工厂 Redis 存储 和默认的 RedissonPubSubEventStore (Redis 发布/订阅)。


RedisStoreFactory(RedissonClient redissonClient, EventStore eventStore)

使用以下方式创建工厂 Redis 存储 以及一个 自定义 EventStore.


混合存储和事件后端

存储(StoreFactory)

事件(EventStore)

示例

内存

Kafka

new MemoryStoreFactory(new KafkaEventStore(...))

Redis

NATS

new RedisStoreFactory(redis, new NatsEventStore(...))

Hazelcast

Redis Streams

new HazelcastStoreFactory(hz, new RedisStreamEventStore(...))

内存

内存

new MemoryStoreFactory()

Hazelcast

Kafka

new HazelcastStoreFactory(hz, new KafkaEventStore(...))


最小化的服务器使用示例


概念概要

StoreFactory 决定每个会话数据的存放位置。 EventStore 决定事件如何在服务器间传播。 两者都是 可配置且可替换的,无需更改应用代码。

最后更新于

这有帮助吗?