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