c# - Azure 事件中心 - 按顺序接收事件
问题描述
我正在使用下面的代码从 Azure Event-Hub 接收事件
我想按顺序处理到达事件中心的请求。例如有人在非常快的时间内发送了 5 个事件,我想完成请求 1 的处理,然后我想处理第二个请求。
如何按顺序处理到达事件中心的事件?
解决方案
事件中心使用分区来启用事件处理的水平扩展。您可以在事件中心创建期间指定从 1 到 32 的分区数。消息顺序仅在一个分区内得到保证,而不是在所有分区中得到保证。
如果您需要维护顺序,则只需将事件写入特定分区并从同一分区读取。在 Azure 事件中心中,分区分布在不同的实例中以实现高可用性。这意味着,分区可能会脱机进行维护,然后再联机。因此,如果您想管理订单,您需要对单个分区进行写入和读取,并且您可能需要从应用程序逻辑中手动管理分区下线等情况。
如果您需要管理订单,我建议使用 Azure 服务总线队列,该队列由服务总线自行管理。
推荐阅读
- c# - 来自响应的 ASP.NET Core MVC 空对象
- python - 不确定为什么对象作为字符串传递
- node.js - 如何将 etcd3 nodejs 客户端用于与标准不同的端口?
- python - 带有时区的 Python 日期,UTC 和 CET 之间的奇怪差异
- regex - 使用 Drivve OCR 扫描后,获取 Regex hero 的正则表达式以选择一串更改文本
- php - 如何有 2 个用于行颜色编码的 if 语句
- arrays - VBA 循环填充数组
- python - 调整 heikin ashi 代码错误:列表喜欢到 .loc 或 [] 与任何缺少的标签不再支持
- apache-spark - 在列中格式化日期时出现 PySpark 错误
- java - 使用多租户 org.apache.catalina.startup.HostConfig.deployWAR 在 tomcat 中部署战争时出错 文件部署期间出错