Прежде всего, существует разница между темами домена и пользовательскими темами. Темы домена слабо привязаны к подписчикам и создаются динамически в зависимости от интереса подписчика.
Другими словами, если для этой темы домена нет интереса (нет подписки), эта тема домена не существует в домене событий, и сообщение о событии, опубликованное для этой темы домена, перенаправит его подписчику домена (если есть доменная подписка).
В вашем случае вы создали две подписки в домене событий topic1 и topic2. Если эти подписки были созданы для этих тем впервые, то домен автоматически создаст эти темы (topic1, topic2) в ресурсе домена событий.
Предварительный просмотр домена событий 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 поддерживает подписку только на одну тему. Было бы неплохо подписаться на несколько тем в домене событий, например, используя расширенную фильтрацию с ключом = topic, но это не работает.
Подписка на домен событий для схемы разветвления:
Особым случаем может быть подписка на домен событий и использование расширенной фильтрации, см. Следующий пример:
"advancedFilters": [
{
"values": [
"topics/topic1",
"topics/topic2"
],
"operatorType": "StringEndsWith",
"key": "topic"
}
Основываясь на вышеупомянутом «обходном пути», вы можете создать несколько разветвленных (широковещательных) групп в домене событий. Предел для подписок на события области домена составляет 50 во время этой общедоступной предварительной версии.
Домены событий - отличная функция в модели событий AEG, например, есть встроенная агрегация событий (шаблон Fan-In) в теме уровня домена. Если событие источника интереса имеет неизвестную тему домена (нет подписки), событие может быть захвачено подписчиком домена.
person
Roman Kiss
schedule
05.02.2019