Я пытаюсь написать прослушиватель для azure очереди служебной шины, но сообщения не обрабатываются. Отправитель работает, поэтому я знаю, что это не проблема с сетью. Сообщения отправляются с sessionId для FIFO, который, я считаю, вызывает проблему. Возможно, это требует больше кода для слушателя или пользовательской фабрики слушателей. Однако мне не удалось найти ссылку для создания прослушивателя FIFO.
@JmsListener(destination="request", containerFactory = "jmsListenerContainerFactory")
public void onMessage(String message) {
try {
log.debug("Azure message received: {}", message);
myService.process(message);
} catch (Exception e) {
log.error("Exception while processing message: {}", message, e);
}
}
application.yml:
spring:
jms:
servicebus:
connection-string: Endpoint=sb://myapp.servicebus.windows.net/;SharedAccessKeyName=enable_access_from_resource_group;SharedAccessKey=<mykey>
idle-timeout: 30000
azure:
servicebus:
queue-receive-mode: peeklock
queue-name: myqueue
connection-string: Endpoint=sb://myapp.servicebus.windows.net/;SharedAccessKeyName=enable_access_from_resource_group;SharedAccessKey=<myKey>
allow-telemetry: false
messaging.tf
resource "azurerm_servicebus_namespace" "alpha" {
name = "myapp"
location = azurerm_resource_group.k8s.location
resource_group_name = azurerm_resource_group.k8s.name
sku = "Standard"
tags = {
app = var.cluster_name
}
}
resource "azurerm_servicebus_queue" "request" {
name = "request"
resource_group_name = azurerm_resource_group.k8s.name
namespace_name = azurerm_servicebus_namespace.alpha.name
enable_partitioning = false
requires_duplicate_detection = true
requires_session = true
}