You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Solace JMS示例连接Broker时遭遇zlib流错误的技术求助

解决Solace JMS连接时的Stream error (zlib)问题

嘿,我看到你在用Solace的JMS示例连接代理时碰到了Stream error (zlib)的问题,而且已经确认了主机端口是对的,那咱们从几个常见的方向来排查修复:

  • 检查客户端与代理的压缩配置是否匹配
    Solace代理和JMS客户端的压缩设置必须保持一致,不然就会出现这种流错误。如果代理端开启了SMF压缩(比如通过service SMF { compression on; }配置),但你的客户端没开压缩,或者反过来,都会触发这个问题。
    你可以在客户端代码里显式配置压缩:

    // 开启压缩,级别2是常用的平衡值(0-9,0为禁用)
    connectionFactory.setCompressionLevel(2);
    

    要是不确定代理的配置,先临时禁用客户端压缩试试:

    connectionFactory.setCompressionLevel(0);
    
  • 排查网络设备是否拦截了压缩流量
    有些防火墙、网关或者代理服务器可能会对zlib压缩的数据流做拦截或修改,导致通信中断。你可以先把两端的压缩都关掉测试:

    1. 客户端设置compressionLevel=0
    2. 如果你有权限操作Solace代理,临时关闭SMF压缩:
      configure
      service SMF
      no compression
      exit
      exit
      write memory
      

    如果禁用压缩后能正常连接,那肯定是网络设备的问题,得调整规则允许zlib流量通过。

  • 验证客户端与代理的版本兼容性
    旧版的Solace JMS客户端和新版代理之间,可能存在压缩算法的兼容问题。你可以试试:

    • 把你的JMS客户端升级到仓库推荐的最新稳定版
    • 确认代理版本和客户端版本的兼容性,参考Solace官方的版本兼容对照表
  • 检查项目依赖中的zlib库
    如果客户端依赖的zlib库损坏、版本不对或者有依赖冲突,也会引发这个错误。你可以清理本地Maven/Gradle仓库后重新构建项目,确保拉取到正确的依赖:

    # Maven示例
    mvn clean install -U
    

内容的提问来源于stack exchange,提问作者AaronB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:34:25