Azure: создайте EventHub программно JAVA

Я разрабатываю корпоративное приложение с высокой нагрузкой. Есть 2 услуги, которые должны быть масштабированы определенным образом. Они используют концентраторы событий Azure для обмена сообщениями. При увеличении нагрузки нам нужно создать еще один экземпляр службы и создать еще одну тему (Event Hub) для связи с другими службами.

Есть ли способ создать концентратор событий динамически из кода Java? Например, если я использую Kafka, я могу просто передать название темы, которая не существует, и она создаст ее сама. Когда я пытаюсь сделать это с помощью Azure EventHubs, у меня возникает такая ошибка:

The messaging entity 'sb://eventhubdev.servicebus.windows.net/newTopic' could not be found.

Итак... возможно ли создать и удалить его программно? Google не помог мне с этим вопросом достаточно ясно.

2 ответа

Решение

После долгих исследований мы решили создать новую тему с помощью прямых вызовов API, как описано в этом документе: https://docs.microsoft.com/en-us/rest/api/eventhub/eventhubs/createorupdate

Может быть решение для масштабирования с помощью Java, но я бы оспаривал это. Масштабирование должно выполняться вашей инфраструктурой (например, kubernetes), а не вашим кодом. Кроме того, я не знаю, достаточно ли динамический концентратор событий для масштабирования.

Предоставление eventhub может быть сделано через terraform. См. Ссылку для получения дополнительной информации: https://www.terraform.io/docs/providers/azurerm/r/eventhub.html

Другие вопросы по тегам