Mongo Legacy Java Driver 4.11.1中MongoClient的getAddress()方法缺失如何替代?
解决MongoDB驱动升级后
MongoClient.getAddress()方法替代方案 原3.10.2版本中MongoClient.getAddress()方法返回的是客户端连接的MongoDB服务器地址(包含主机名与端口),在4.11.1版本的mongo-driver-legacy中,可以通过以下方式获取相同信息:
通过集群描述获取服务器地址:
4.x版本驱动重构了客户端API,集群相关信息统一通过ClusterDescription获取,代码示例:// 获取MongoClient实例的集群描述 ClusterDescription clusterDescription = mongoClient.getClusterDescription(); // 单节点场景下取第一个服务器地址即可(集群场景可根据需求遍历) ServerAddress serverAddress = clusterDescription.getServerAddresses().get(0); // 获取主机名与端口,与原getAddress()返回值一致 String host = serverAddress.getHost(); int port = serverAddress.getPort();注意事项:
若你的场景是单节点连接,也可以从连接字符串中解析地址,但通过ClusterDescription获取的是实际建立连接的服务器地址,更准确(比如应对配置了路由或自动寻址的场景)。
内容的提问来源于stack exchange,提问作者Olgun Kaya
相关产品推荐
相关产品推荐

