什么是围绕Azure的EventGrid主题和活动的最佳实践?
它是一个坏主意,发布不同的事件类型相同的Azure的EventGrid话题? 例如,多个不同的域事件
我们什么时候需要不同的主题? 整个应用程序的单个共享主题? 每个聚合根型的一个主题? 每个事件类型的一个主题?
因为没有明确的答案任何建议将受到欢迎
第2部分。
如果我想与各种Azure的逻辑Apps整合? 如果多个应用程序逻辑反应以同一主题,它们将窃取从每个-其他消息? 难道每个逻辑应用程序创建一些看不见的订阅?
什么是围绕Azure的EventGrid主题和活动的最佳实践?
它是一个坏主意,发布不同的事件类型相同的Azure的EventGrid话题? 例如,多个不同的域事件
我们什么时候需要不同的主题? 整个应用程序的单个共享主题? 每个聚合根型的一个主题? 每个事件类型的一个主题?
因为没有明确的答案任何建议将受到欢迎
第2部分。
如果我想与各种Azure的逻辑Apps整合? 如果多个应用程序逻辑反应以同一主题,它们将窃取从每个-其他消息? 难道每个逻辑应用程序创建一些看不见的订阅?
不,这不是一个坏主意,发布不同的事件类型相同的Azure的EventGrid话题:如果事件都涉及到相同的资源,这有一定道理将其发布到同一EventGrid话题。 以某HR应用程序的例子,你可以在相同的“员工”主题发表EmployeeAdded和EmployeeRemoved事件。
就当将需要不同的主题上的问题,我认为这取决于几个因素,比如你是如何在你的应用程序建模的资源,对这些资源的利益的事件,安全模型围绕该系统的部件应该可以发布到关于这个专题的主题/创建事件订阅。 理想情况下,所有类型相同的资源类型(例如,在上面的例子中的“雇员”资源类型)的事件可以是在相同的主题。 当你的系统有多种类型的资源,你可能要为他们每个人创建单独的主题。 此外,所需的安全模型,必须考虑到,以及(如假设你想限制访问谁可以接收特定类型的事件)。
至于有关逻辑应用程序的问题,如果你创建多个逻辑应用程序,处理来自同一主题的活动,他们每个人对同一主题创建一个事件订阅,事件电网将提供关于该主题的事件到每个事件订阅。 因此,每个逻辑应用程序将分别收到相同的事件,并且可以处理它独立于其他应用程序。
Azure的事件网格(AEG)不是一个通用的发布/订阅模式。 这个模型是基于事件,其中每个事件源(topicType)正在处理自己的利益的来源。
用户订购的兴趣使用订阅事件源(主题)。 需要注意的是,AEG允许只订阅一个主题的订阅。 有一个限制每个主题500个订阅。
换句话说,如果由同一用户事件源(主题)的倍数的兴趣,这种模式需要建立每个用户多订阅(每个主题一个)。 利息的过滤仅在相同的话题是可能的。
在AEG事件的源可以通过自定义的主题(每Azure订阅最大100)进行扩展。
基于上述,我不推荐自定义主题使用像内置在蔚蓝的事件源(topicTypes)与多事件类型,它可以简化在环境不断部署相同的模型。
到了第2部分:在AEG不使用“无形”的订阅作为整合的一部分。 创建的话题每一个订阅可见光和accessable,例如使用REST API
更新:
Azure的事件电网近日发布(预览-版本2018年9月15日-预览)的新功能,它可以帮助使用事件域和域主题 ,了解更多详细信息的解决方案在这里 。
您可以使用更新的工具Azure的事件电网测试仪测试所有新预览版的功能,它们不是在Azure门户UI没有实现。