Artemis:在 Kubernetes pods 运行 上设置的客户端 ID 作为副本集
Artemis: Client ID set on Kuberentes pods running as replica set
我有一个 ActiveMQ Artemis 队列消费者,客户端 ID 设置为主机名。这作为复制集在 kubernetes 上运行。现在的问题是,每当 pod 崩溃时,它都会被分配新的主机名,并且消费者会丢失其在代理上的状态。有没有一种方法可以在整个 pod 生命周期中保持一致的客户端 ID?有没有一种方法可以从代理中获取所有客户端 ID,以便我可以从 ID 池中的已知 ID 进行分配?
如果您从队列中消费,则无需设置客户端 ID。您的应用程序可以在队列中重新创建消费者并读取断开连接时累积的所有消息(假设另一个消费者尚未收到它们)。客户端 ID 实际上仅在您创建主题的持久订阅时才有用。如 JMS 2 规范第 6.1.2 节所述:
The only use of a client identifier defined by JMS is its mandatory use in
identifying an unshared durable subscription or its optional use in
identifying a shared durable or non-durable subscription.
我有一个 ActiveMQ Artemis 队列消费者,客户端 ID 设置为主机名。这作为复制集在 kubernetes 上运行。现在的问题是,每当 pod 崩溃时,它都会被分配新的主机名,并且消费者会丢失其在代理上的状态。有没有一种方法可以在整个 pod 生命周期中保持一致的客户端 ID?有没有一种方法可以从代理中获取所有客户端 ID,以便我可以从 ID 池中的已知 ID 进行分配?
如果您从队列中消费,则无需设置客户端 ID。您的应用程序可以在队列中重新创建消费者并读取断开连接时累积的所有消息(假设另一个消费者尚未收到它们)。客户端 ID 实际上仅在您创建主题的持久订阅时才有用。如 JMS 2 规范第 6.1.2 节所述:
The only use of a client identifier defined by JMS is its mandatory use in identifying an unshared durable subscription or its optional use in identifying a shared durable or non-durable subscription.