Azure EventHub 能否用于生产中的关键事务数据?
Can Azure EventHub be used for critical transactional data in production?
阅读 the documentation,Azure EventHubs 适用于:
- 应用程序检测
- 用户体验或工作流处理
- 物联网 (IoT) 场景
这可以用于任何交易数据、处理收入或应用程序敏感数据吗?
根据我的阅读,它似乎是用来处理数据的,人们不应该担心任何数据丢失。是这样吗?
它主要是为大规模数据摄取而设计的。这就是为什么典型场景包括由大量设备发送大量遥测数据的物联网解决方案。
为了实现这种规模,它不包括其他消息服务的某些功能,例如 Azure Service Bus, do have. I think this blog 可以很好地聆听差异。特别是 Use Case 部分解释得很好:
From a target use case perspective if we consider some of our typical enterprise integration patterns then if you are implementing a pattern which uses a Command Message, or a Request/Reply Message then you probably want to use Azure Service Bus Messaging. RPC patterns can be implemented using Request/Reply messages on Azure Service Bus using a response queue. These are really about ESB and EAI style messaging patterns where you want to send messages between applications and probably want to use other features such as property based routing.
Azure Event Hubs is more likely to be used if you’re implementing patterns with Event Messages and you want somewhere reliable to send them that is capable of dealing with a massive scale but will allow you to do stuff with the events out of process.
With these core target use cases in mind it is easy to see where the scale differences come into play. For messaging it’s about one application telling one or more apps to DO SOMETHING or GIVE ME SOMETHING. The alternative is that in eventing the applications are saying SOMETHING HAS HAPPENED. When you consider this in typical application scenarios and you put events into the telemetry and logging space you can quickly see that the SOMETHING HAS HAPPENED scenario will produce a lot more traffic than the other.
Now I’m not saying that you can’t implement some messaging type functions using event hubs and that you can’t push events to a Service Bus topic as in integration there are always different requirements which result in different implementation scenarios, but I think if you follow the above as a general rule then you will usually be on the right path.
然而,这并不意味着它只能处理数据,因此不必担心任何数据丢失。数据存储一段可配置的时间,如有必要,可以从较早的时间点读取此数据。
现在,鉴于您的情况,我认为 Event Hub 不是最合适的。但说实话,我不确定,因为你必须详细说明你到底想做什么。
加法
Event Hubs 背后的想法是你将至少获得一次大规模交付。 (Source). See also this question:
阅读 the documentation,Azure EventHubs 适用于:
- 应用程序检测
- 用户体验或工作流处理
- 物联网 (IoT) 场景
这可以用于任何交易数据、处理收入或应用程序敏感数据吗?
根据我的阅读,它似乎是用来处理数据的,人们不应该担心任何数据丢失。是这样吗?
它主要是为大规模数据摄取而设计的。这就是为什么典型场景包括由大量设备发送大量遥测数据的物联网解决方案。
为了实现这种规模,它不包括其他消息服务的某些功能,例如 Azure Service Bus, do have. I think this blog 可以很好地聆听差异。特别是 Use Case 部分解释得很好:
From a target use case perspective if we consider some of our typical enterprise integration patterns then if you are implementing a pattern which uses a Command Message, or a Request/Reply Message then you probably want to use Azure Service Bus Messaging. RPC patterns can be implemented using Request/Reply messages on Azure Service Bus using a response queue. These are really about ESB and EAI style messaging patterns where you want to send messages between applications and probably want to use other features such as property based routing.
Azure Event Hubs is more likely to be used if you’re implementing patterns with Event Messages and you want somewhere reliable to send them that is capable of dealing with a massive scale but will allow you to do stuff with the events out of process.
With these core target use cases in mind it is easy to see where the scale differences come into play. For messaging it’s about one application telling one or more apps to DO SOMETHING or GIVE ME SOMETHING. The alternative is that in eventing the applications are saying SOMETHING HAS HAPPENED. When you consider this in typical application scenarios and you put events into the telemetry and logging space you can quickly see that the SOMETHING HAS HAPPENED scenario will produce a lot more traffic than the other.
Now I’m not saying that you can’t implement some messaging type functions using event hubs and that you can’t push events to a Service Bus topic as in integration there are always different requirements which result in different implementation scenarios, but I think if you follow the above as a general rule then you will usually be on the right path.
然而,这并不意味着它只能处理数据,因此不必担心任何数据丢失。数据存储一段可配置的时间,如有必要,可以从较早的时间点读取此数据。
现在,鉴于您的情况,我认为 Event Hub 不是最合适的。但说实话,我不确定,因为你必须详细说明你到底想做什么。
加法
Event Hubs 背后的想法是你将至少获得一次大规模交付。 (Source). See also this question: