• hessian 报 'j' is unknow code故障分析


    今天突然发生了一件怪事,在内测环境下所有的客户端通过hessian请求服务端时,部分的请求直接返回  'j' is unknow code ,服务端并不报错。发生这个问题,真把我给急坏了,内测环境是我们上线生产的最后一道关,如果这个故障不解决,所有的应用都要停止上线,以免给生产系统造成影响。一方面更新邮件不停的在累积,另一方面,出于对生产系统负责的态度,不敢对生产环境进行更新。

    某大神一直认为是项目中的包的版本的问题,不断的让我换依赖包的版本,当时我也没有太好的排查方案,只好先尝试换换看,换来换去问题依旧。一上午很快就过去了,到下午,无线那边的产品挨个找我问我情况,迫于压力,我回复产品部门,四点之前一定给出出力结果。于是我开始自己来分析问题。

    1、生产环境和测试环境都没问题,只有内测环境有问题。内测环境的包和生产环境的包都是一样的,应用的包文件没有更换过,这样其实先排除应用内部的原因了。(所以说上午听某大神的换依赖包版本的建议是有多么的离谱了)

    2、把内测客户端的RPC的请求地址先换成生产的RPC,排除故障是否与服务端有关系。改完测试之后,发现客户端和服务端都没问题。请求都很正常。说明问题在中间转发层或者是服务端。再把RPC的请求地址更换成内测服务端的IP地址(除中间转发层),发现请求都正常。排除之后可以肯定,是由于中间层转发出现了故障造成的。

    3、找到运维的负责请求转发的同事,让他检查了一下,最终确认的原因是由于 应用防火墙的配置有问题导致请求被拦截造成返回数据无法被hassian协议识别导致的。修复应用防火墙配置,故障恢复。

  • 相关阅读:
    可移动的按钮
    .NET及JAVA 中如何使用代码启动程序
    SQL一对多特殊查询,取唯一一条
    jquery,字符串转json对象,json对象转字符串
    jQuery的ajax()、post()方法提交数组,参数[] 问题
    Sql Server中实现Mysql中的group_concat函数效果
    SQL:REGEXP
    sql:CallableStatement执行存储过程
    js去除前后空格
    jsp中常用操作字符串的el表达式
  • 原文地址:https://www.cnblogs.com/zhoukedou/p/3054868.html
Copyright © 2020-2023  润新知