Momento Topics:用于发布-订阅的无服务器事件消息系统

Momento推出Momento Topics服务

Momento最近推出了Momento Topics,这是一个支持发布-订阅通信模式的无服务器事件消息系统。该服务旨在为事件驱动架构提供消息管道。未来的功能发布将支持直接调用AWS Lambda以及由Momento Cache触发的变更数据捕获事件。

Momento的目标与产品

Momento的目标是帮助开发者快速编写可靠且健壮的事件驱动应用。其首款产品Momento Cache于2022年发布,是一款用于数据库和应用场景的无服务器缓存,被无服务器倡导者Alex DeBrie称为“21世纪的无服务器、云时代的缓存”。Momento Topics是Momento团队的第二款服务,设计用于将发布的消息立即传送给当前所有订阅者,随后消息将被丢弃。Momento建议在低延迟消息传递优先于偶尔消息丢失的场景中使用此服务。

Momento Topics的主要优势

Momento Topics的主要优势包括:

  • 简化的定价模式,提供50GB的免费层级
  • 无需配置的主题管理
  • 大规模下的毫秒级尾部延迟

使用Momento Topics

要使用Momento Topics,应用程序需要安装Momento SDK,该SDK支持包括Node.js、.NET和Java在内的八种编程语言和框架。由于Momento Cache支持Momento Topics,应用程序需要通过SDK连接到现有的缓存实例才能发布或订阅消息。以下是一个在Node.js中设置客户端以发布的代码片段:

import {
   TopicClient,
   TopicPublish,
   Configurations,
   CredentialProvider,
 } from '@gomomento/sdk';

const momento = new TopicClient({
 configuration: Configurations.Laptop.v1(),
 credentialProvider: CredentialProvider.fromEnvironmentVariable({
   environmentVariableName: 'MOMENTO_AUTH_TOKEN',
 }),
});

const publishResponse = await momento.publish(cacheName, topicName, value);

if (publishResponse instanceof TopicPublish.Success) {
 console.log('Value published successfully!');
} else {
 console.log(`Error publishing value: ${publishResponse.toString()}`);
}

订阅的代码类似,但需要注册一个回调函数以处理新到达的项目:

const response = await momento.subscribe(cacheName, topicName, {
   onItem: handleItem,
   onError: handleError,
});

function handleItem(item: TopicItem) {
   console.log('Item received from topic subscription; %s', item);
}

function handleError(error: TopicSubscribe.Error) {
   console.log(`Error received from topic subscription; ${error.toString()}`);
}

未来功能增强

Momento团队还计划通过两种功能增强Momento Topics的订阅功能:

  1. Executors:允许Lambda函数直接作为主题的订阅者被调用。
  2. Triggers:允许基于Momento Cache中数据变化的订阅触发。

与其他服务的比较

Momento Topics与AWS Eventbridge、Azure Event Grid和GCP Eventarc类似,专注于通过事件实现解耦的应用集成。尽管它提供了与其他服务类似的无服务器和低配置开销,但在死信/事件传递能力上有所不同。其他服务不保证事件传递顺序并使用死信机制,而Momento Topics提供带有序列号的消息,并旨在支持从检查点序列号初始化订阅。另一个关键区别是Momento Topics原生支持的发布者和订阅者数量。尽管AWS Eventbridge、Azure Event Grid和GCP Eventarc与各自的生态系统有集成,Momento Topics仅宣布了与AWS Lambda和Momento Cache的未来集成。

进一步信息

有关如何开始使用Momento Topics的更多信息,可以访问其文档页面

阅读 24
0 条评论