Maven间接依赖未下载

一、问题描述

昨日收到一个告警,内容如下:

1
2
3
4
5
2021-11-09 15:01:04 警告,
应用:xxx,
自定义监控:exception.write.kafka,
告警内容:"消费本地失败消息写入Kafka失败java.lang.NoClassDefFoundError: net/jpountz/lz4/LZ4Factory",
报警主机:xxx.xxx.xxx.xxx
阅读更多

commons-io依赖冲突

一、问题描述

昨日夜间接到研发反馈,EDI商家新上线后启动异常,需要协助排查,异常信息为:java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.toString(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/String;

二、问题排查

阅读更多

因浮点精度损失了1分钱

一、问题描述

产品反馈与商家对账时,有单运费金额对不上:本该是10块2,可商家侧收到的是10块1毛9,莫名少了一分钱。然后紧急根据单号查询日志信息。

本场景是消费一个MQ,把消息通过数据转换文件转换为商家侧数据格式,然后推送给商家。其中出问题的字段,仅做了一个逻辑,金额单位由元转分,类似如下:

阅读更多

CPU飚高排查

一、背景

近日发现EDI线上某应用为618新扩容的非公有云机器CPU经常99%,频繁触发机器CPU告警。该集群的其他机器则CPU使用率在10%以下。

二、排查步骤

阅读更多

抓包分析http请求超时

一、问题背景

EDI某商家回传场景近期高频出现Http回传商家超时现象,关键堆栈如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
at org.apache.camel.component.http4.HttpProducer.executeMethod(HttpProducer.java:334)
at org.apache.camel.component.http4.HttpProducer.process(HttpProducer.java:193)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
... 41 more
阅读更多

MQ积压2亿了

一、问题背景

5月17日,下午4点由于EDI集群上某商家请求剧增,MQ的生产流量也变成平时两倍,而日志消费应用消费能力不足,导致日志积压到MQ,24小时后积压到2亿。

image-20210519163138634

阅读更多

Debug时加的观察变量影响了debug

一、问题描述

有这样一个流程:从FTP上下载文件后,会根据文件名读取缓存实现防重,其中缓存读取到的值会写入Camel的exchange,exchange.getIn().setBody(cacheValue);

但是,通过日志观察该Body是一串无规律的字符,类似My8+PFNEMvPjxSRU1BUksxLz48UkMRT48TUFUTlI+QVBHTTA0OC02PC9NQVROUj48TUFLVFg+57qi6Imy5Ki75aSn5Y+36LSt54mp6KJWkVTX0RBVEE+PFNJWkU+MDAwPC9VNQVJLMi8+PFJFTUFSSzMvPjxSRU1BUks0Lz48L1NJWkVTX0RBVEE+PC9NQUlOX1RBQkxFPjwvUk9PTUFJTl9UQUJTSVpFPjxXRUlHSFQvPjxMRU5HVEgvPjxXSURUSC8+PEhFSUdIVC8+PElOQ0FTRU1FTlQvPjxFQU5VUKLPVD4D488Uk9PVC9NQUtUW

阅读更多

Http上传文件的Content-Type格式

一、问题描述

昨天研发反馈使用EDI的HTTP调用结点时,http响应报错如下: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found

阅读更多

el表达式与BigDecimal

一、问题描述

上周四研发使用EDI的数据转换时发现el表达式计算结果不正确,即使用el表达式进行除法的时候结果不对。例如:${numVar/1000},其中通过日志里观察numVar的变量值为2,但是结果确实0.

阅读更多