У меня проблема с надежным клиентом в ActiveMQ.Я использую stomp.py в Python.
conn.start()
conn.connect(wait=True, header = {'client-id': 'myhostname' })
conn.subscribe(
'/topic/testTopic', ack='auto',
headers = {
'activemq.subscriptionName': 'myhostname',
'selector': "clientid <> '%s'" % 'myhostname'
}
)
Как вы можете видеть из моего кода, я устанавливаю свой clientId как свое собственное имя хоста.Как показано на прилагаемом скриншоте (ниже), clientId выглядит примерно так: «ID: Atlas ....».
Проблема в том, что каждый раз, когда я отключаю свой клиент на основе stomp.py, я получаю новый "clientId" при следующем подключении.Это приводит к тому, что список подписчиков в ActiveMQ заполняется: (на изображении выше показан подписчик в моем брокере ActiveMQ. В следующий раз, когда я отключаюсь, а затем подключаюсь, запись выше все равно останется, а еще одна будет добавлена. Довольноскоро у меня много подписчиков в списке).
Странно то, что селектор работает на 100% (я проверяю это, меняя <> на =, чтобы сообщения возвращались мне), поэтомуclientId должен работать как-то.