Я настроил Azure Event Hub. Есть 2 издателя:
Издатель 1 (с политикой отправки)
Издатель 2 (с политикой отправки)
Издатель 1 отправит событие 1, а издатель 2 отправит событие 2. Оба события 1 и событие 2 имеют разный формат.
Вопрос 1: Это означает, что у нас есть разные сообщения в EH - каковы компромиссы с этим подходом? Должен ли я вместо этого создать 2 EH (один для Publisher 1 и другой для Publisher 2)? Какова лучшая практика и философия дизайна?
Если я перейду к подходу, мне придется настроить "Потребитель" с помощью политики прослушивания, чтобы искать эти события и анализировать/преобразовывать эти события и де-сериализовать их.
Вопрос 2: Мне нужно, чтобы 2 потребителя (потребитель 1 и потребитель 2) читали сообщения, предназначенные для них? (Потребитель 1 будет читать только событие 1, а потребитель 2 будет читать только событие 2)?
Сценарий 1: один концентратор событий для нескольких типов событий
В этом случае у вас есть несколько вариантов, когда дело доходит до отправки и обработки сообщений:
Сценарий 2: Концентратор событий на типы событий
Это легко, просто создайте 2 концентратора событий и 2 процесса потребления. Но вам нужно будет управлять 2-мя хабами событий и учитывая возможности Event Hub, это может быть излишним.
Мой совет
Это зависит от объема данных, но, основываясь на моем опыте, я хотел бы отправить все сообщения в один из хабов событий и один процесс, прочитав это сообщение, и выполнить действие, основанное на типе сообщения, используя некоторый код С#.