当前位置: 首页 > 知识库问答 >
问题:

将这种方法用于制作客户id

夏建木
2023-03-14

我正在构建一个应用程序,它将消费来自多个主题的消息,转换消息,然后将它们发布到多个主题。在查找connectionfactory对象之后,我使用以下代码

Connection con = cf.createConnection();
String clientId = "APP"+ con.hashCode();
con.setClientId(clientId);

在创建持久订阅时,我使用了这个MessageConsumer consumer=session。CreateDurableSubscriber(主题,“DurableSubscribtion”clientId,topic.getSelector,true);

每个连接都应该有unqiue客户端ID和订阅名称。

连接关闭后,我尝试使用新创建连接的hashCode再次访问相同的订阅,这种方法有效吗?还是我需要指定订阅名称,如SUBSCRIBER1、SUBSCRIBER3、SUBSCRIBER2…

共有1个答案

师成弘
2023-03-14

是的,您必须指定一个“可重复的”客户端id,这样下次您就可以呈现相同的客户端id。否则,您将创建负载(整数。可能的最大值?)的订阅都将死亡。

您需要设计一个有意义的命名方案。例如,如果您订阅了每个主题的订阅者,只需命名客户机id

如果你使用的是ActiveMQ,考虑到VirtualTopics,这要简单一点。

 类似资料:
  • 我试图通过web api执行粗鲁的操作。所以我把客户json从客户端传递到web api操作。 这是我从客户端传递给操作的json。 这是我得到的错误信息,当我做同样的事情从小提琴手。 {“Message”:“请求包含实体正文,但没有内容类型标头。此资源不支持推断的媒体类型“application/octet stream”。”,“ExceptionMessage”:“没有MediaTypeFor

  • 底部成员方法连续使用“”运算符调用成员“set”方法作为返回对象的方式 我以前从未遇到过这种语法,这是有效的Java语法吗?这个链接叫什么(我如何查找这样的语法用法?)? . . .

  • URI 方法 URI() string 返回当前客户端使用的服务器地址。 SetURI 方法 SetURI(uri string) 设置当前客户端使用的服务器地址。如果你想要设置多个服务器地址,请使用 SetURIList 方法代替该方法。 URIList 方法 URIList() []string 返回当前客户端可使用的服务器地址列表。 SetURIList 方法 SetURIList(uriL

  • 我试着做这个计算器,我可以用四种方法,一种是加法,一种是减法,还有.....但我想让它变得尽可能简单。我如何使用一个方法执行4个主要操作,然后在静态main中调用它? 可以将更改为()吗?(那部分是我有问题)

  •  说明 判断是否安装游戏 $.f2eMb.app.checkInstall(pckName) 下载游戏 $.f2eMb.app.dwGame(gameId) 根据地址下载游戏 $.f2eMb.app.dwGameByUrl(url,gameId,pckName) 进入游戏 $.f2eMb.app.strGame(pckName) 登录 $.f2eMb.app.login() 复制 $.f2eMb

  • 问题内容: 我有以下代码: 我希望它能打印a = 2 b = 1,但它却打印相反的东西。因此很明显,swap方法不会交换a和b值。为什么? 问题答案: 这与整数的不变性无关。它与 Java是值传递 ,该死 的事实有关! (不烦恼,只是文章标题:p) 总结一下:您实际上不能在Java中创建交换方法。您只需要在需要的地方自己进行交换即可。反正这只是三行代码,所以应该不成问题:)