Как создать прослушиватель весенней загрузки для очереди FIFO azure служебной шины? - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь написать прослушиватель для 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
}
...