为 JMS 发布者/消费者设置 clientID 的目的是什么?
What's the Purpose of setting the clientID for JMS publisher / consumer?
我了解在为我的持久主题编写 jms 主题订阅者时需要设置 clientId 和订阅名称。
但是发布TOPIC时设置clientID的目的是什么?我见过有人甚至为发布者/消费者设置客户端 ID,但没有人解释为什么需要它。
ConnectionFactory conFactory = this.getConnectionFactory();
Connection connection = conFactory.createConnection();
connection.setClientID("WHATS_MY_PURPOSE"); // Why do we need clientID while publishing the TOPIC from consumer / publisher
connection.start();
MessageProducer producer = session.createProducer(destination);
需要 clientId
来唯一标识应用程序。在 Pub/Sub 消息传递模式中使用持久订阅时,这是必须的。您可能知道,消息传递提供程序会在持久订阅者应用程序离线时缓存发布。当此类应用程序再次上线时,消息传递提供商必须识别 OK, this is the same application that created a durable subscription but went away for reason. Now it has come back. So let me deliver all messages that were published when this application was away
。为了验证它是同一个应用程序,消息传递提供程序将应用程序的 clientId
与缓存订阅信息可用的 clientId
进行比较。
我了解在为我的持久主题编写 jms 主题订阅者时需要设置 clientId 和订阅名称。
但是发布TOPIC时设置clientID的目的是什么?我见过有人甚至为发布者/消费者设置客户端 ID,但没有人解释为什么需要它。
ConnectionFactory conFactory = this.getConnectionFactory();
Connection connection = conFactory.createConnection();
connection.setClientID("WHATS_MY_PURPOSE"); // Why do we need clientID while publishing the TOPIC from consumer / publisher
connection.start();
MessageProducer producer = session.createProducer(destination);
需要 clientId
来唯一标识应用程序。在 Pub/Sub 消息传递模式中使用持久订阅时,这是必须的。您可能知道,消息传递提供程序会在持久订阅者应用程序离线时缓存发布。当此类应用程序再次上线时,消息传递提供商必须识别 OK, this is the same application that created a durable subscription but went away for reason. Now it has come back. So let me deliver all messages that were published when this application was away
。为了验证它是同一个应用程序,消息传递提供程序将应用程序的 clientId
与缓存订阅信息可用的 clientId
进行比较。