gpt4 book ai didi

java - 是否有任何支持有线压缩的 MongoDB 驱动程序?

转载 作者:可可西里 更新时间:2023-11-01 10:02:36 25 4
gpt4 key购买 nike

MongoDB 可以使用此选项运行:--networkMessageCompressors=snappy。根据文档,这压缩了 mongod、mongos 和 mongo shell 之间的网络交换。

我想压缩 Java 应用程序和 mongod 之间的流量,但没有一个 Java 驱动程序提供此选项。

你们中有人尝试过以下路径之一吗?

  • 修补 Java 驱动程序,使其支持压缩(这当然是我的首选解决方案,但我可以使用一些关于指导的建议)
  • 包装另一个支持压缩的驱动程序以将其暴露给 Java 应用程序(但我不知道是否有其他驱动程序支持此功能)

当然,如果有任何其他方法可以帮助我压缩该有效负载,我们将不胜感激。

提前致谢!

最佳答案

如您所见,network compression feature在 MongoDB 3.4 中添加的功能目前仅支持副本集或分片集群(mongodmongos)成员之间的集群内通信以及 mongo 外壳。从 MongoDB 3.4 版本开始,还没有支持网络压缩的官方驱动程序。

您可以在 MongoDB 问题跟踪器中查看/投票支持客户端/驱动程序支持的相关功能请求:SERVER-25620: Compression of wire protocol for Clients .此功能请求还有一条评论提供了一些 context on the lack of client support :

For some background, the decision to implement wire protocol compression came very late in the MongoDB 3.4 development cycle. We agree that it would be good for clients to be able to take advantage of the feature, but to do so for MongoDB 3.4 would have required that all official MongoDB drivers add support as well, and that just didn't seem realistic given the timeline. Also, by keeping wire protocol compression cluster-internal only, it will give us some ability to refine the feature before we open it up to clients and are effectively locked in to a design. We will be evaluating whether to extend support for compression to clients during MongoDB 3.6 development.

如果您的用例取得重大胜利,您可以考虑为 Java 驱动程序实现补丁,但是在 3.6 开发周期中可能会发生变化,等待官方驱动程序支持可能更为谨慎。

Of course, any other way that could help me compress that payload would be highly appreciated.

您可以使用 VPN 或 TLS/SSL 压缩来利用网络压缩,而不是修改驱动程序。 VPN 压缩可能是更值得推荐的方法。

TLS/SSL 压缩取决于许多因素,包括您的 TLS/SSL 库是在默认情况下启用还是禁用压缩。由于像 CRIME 这样的高调安全漏洞,许多 O/S 发行版和语言/驱动程序已禁用 TLS/SSL 压缩。 .尽管 MongoDB 理论上不容易受到 CRIME 攻击(针对经过身份验证的 Web session ),但许多用户认为 TLS 压缩是一个安全问题。

关于java - 是否有任何支持有线压缩的 MongoDB 驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43578178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com