3个不稳定版本
0.5.1 | 2021年3月18日 |
---|---|
0.5.0 | 2021年3月3日 |
0.4.0 | 2021年2月11日 |
#1327 in WebAssembly
每月460次下载
在2个Crate中使用(通过wasmcloud-host)
41KB
888 行
WasmCloud键值存储提供者(NATS分布式键值缓存)
这是一个内存中的键值缓存,通过在特定NATS主题上复制状态变化进行分布式。在“裸NATS”版本的此提供者中,可能会发生消息丢失,因此缓存值可能从主机到主机不同步。
注意⚠️
建议仅在开发、调试和研发目的下使用此键值存储,不要将其用于生产级分布式缓存,除非周期性节点偏差是可接受的用例(例如,在缓存未命中时重新查询数据或时间延迟/心跳同步是可接受的)。此提供者将尝试使用高水位标记加事件溯源来同步全局状态,但该系统并非完美无缺。
根据wasmcloud:keyvalue
合约,此提供者存储的所有值(除原子值外)均视为字符串。Sets
被视为字符串集合等。原子值不能保证全局原子性。增量减量将根据当时已知的(本地)值进行,这意味着并发、分布式所谓的“原子”更新可能导致不一致的值。
此外,缓存不是按actor隔离的。这不是一个多租户缓存。如果两个不同的actor绑定到此提供者的同一命名链接实例,请求相同的键,他们将得到相同的值。如果您需要分割分布式缓存,请在启动时提供不同的链接名称。
此提供程序将接收来自第一个链接角色的配置,并使用这些数据连接到NATS。为了满足“幂等提供程序”的要求,将忽略所有后续提供链接配置的尝试。如果在初始链接配置期间未提供NATS连接字符串信息,则此提供程序将有效地像一个单独的、独立的内存缓存一样运行,不会复制或订阅任何状态更改。
另一项警告 ⚠️
不要依赖此提供程序在响应突变操作时返回有意义的数据。例如,根据合同,原子添加操作返回一个表示新值的整数。出于优化目的,此提供程序将返回所有响应的默认(空)版本。这是基于这样一个观点:当你将数据设置在这个分布式缓存中时,你并不想立即检索该值。
依赖项
~20–32MB
~559K SLoC