我做了以下实验,它的工作原理:
问题:
是否有可能将事件发送到域,以便它可以被传递到多个主题(上述情况专题1和专题2)?
这在今天不是严格可行的。一般情况下,如你所描述的广播情形中,通过对同一主题创建多个订阅解决。发布到域内不同主题的主要原因是授权。
如果你想有一个不同的用户组,以便能够从第1个主题订阅事件与话题2,然后打入两个主题很有意义。如果相同的用户可以访问同一组事件,那么他们通常被授权访问同一主题。
如果你不希望流到每个端点的所有事件,这是在过滤器开始适用。
如果可能的话,我怎么做呢?
如果你想在同一事件可用两种不同的主题,你将不得不为每个主题两次发布事件到域,一次。
第二个选择,这取决于你的使用情况是“流水”式的事件订阅的可用性。每个域名还可以支持在域范围内的一组事件订阅有限公司(订阅域中所有事件)。这并没有公布这两个主题,但可以根据您的需要的替代架构。
如果今天它是不可能的,这将是以后可用?
TBD。你心里有一个用例被阻止?
首先,有域的主题和自定义主题之间的差异。域的主题是松散分离到的用户,他们都是基于用户兴趣创建动态。
换句话说,如果没有该域的话题不感兴趣(没有订阅),该域主题不在事件域中存在并公布该域主题活动消息将其转发到域用户(如果有域订购)。
在你的情况,你所创建的事件域TOPIC1和标题2两个订阅。如果这些订阅已经创建了第一次为主题,那么域名将自动创建这些主题(TOPIC1,标题2)在事件域资源。
在AEG事件域预览支持对事件数组发送到事件域主题。下面的屏幕片段展示了使用缺省输入模式(如EventGridSchema)的示例事件:
[
{
"topic": "topic1",
"id": "12345",
"subject": "/myapp/vehicles/motorcycles",
"eventType": "recordInserted",
"eventTime": "2019-02-05T16:57:16.5734282Z",
"data": {
"make": "Ducati",
"model": "Monster"
}
},
{
"topic": "topic2",
"id": "67890",
"subject": "/myapp/vehicles/motorcycles",
"eventType": "recordInserted",
"eventTime": "2019-02-05T16:57:16.5734282Z",
"data": {
"make": "Ducati",
"model": "Monster"
}
}
]
正如你所看到的,每一个事件(在本EventGridSchema)以上映射的兴趣源域的话题。的特殊情况是当我们使用了CustomInputSchema,其中该映射可定制(例如缺省值和/或sourceField)。
有关在AEG的Pub / Sub模型中的“主题广播”你的问题的答案是否定的。在AEG模型只支持订阅一个话题。这将是很好认购事件域内多个主题,例如使用与键=话题先进的过滤功能,但它不能正常工作。
订阅事件域扇出型:
的特殊情况下可以是订阅事件域并使用先进的过滤,请参阅下列的例子:
"advancedFilters": [
{
"values": [
"topics/topic1",
"topics/topic2"
],
"operatorType": "StringEndsWith",
"key": "topic"
}
基于上述“变通方法”你可以创建多个扇出(广播)群体事件域内。域范围事件订阅的限制是该公共预览期间50。
事件域是在AEG的事件模型一个很大的特点,例如,有一个内置的事件聚集在域级别主题(扇入模式)。如果感兴趣源事件有未知的领域,主题(没有订阅),该事件可以由用户域捕获。