shulieTech / Takin

Takin is an Java-based, open-source system designed to measure online environmental performance test for full-links, Especially for microservices. Through Takin, middlewares and applications can identify real online traffic and test traffic, ensure that they enter the right databases.
Apache License 2.0
1.32k stars 330 forks source link

应用管理-远程调用里配置返回值mock时,一旦压测,探针就会抛异常,配置的mock与挡板都会失效 #114

Open huchunyong1987 opened 2 years ago

huchunyong1987 commented 2 years ago

在应用当中的不同接口配置了挡板与返回值mock,单次调用压测流量没问题,一旦压测配置了返回值mock的接口时,探针就会抛如下异常,然后当前应用配置的所有挡板与返回值mock都会不生效。 image 页面配置: image

jsfbetter commented 2 years ago

顶一下~关注

angjuLin commented 2 years ago

具体的httpclient版本麻烦提供一下,还有配置转发的配置页面的内容也截图发一下

yriiolik commented 2 years ago

转发mock 配置的详细内容能截图看一下么?

截图这个异常是 ProcessControlException, 它本身就是用来打断当前调用用的,配置了挡板(返回值mock)肯定会抛出这个异常。

huchunyong1987 commented 2 years ago

转发mock 配置的详细内容能截图看一下么?

截图这个异常是 ProcessControlException, 它本身就是用来打断当前调用用的,配置了挡板(返回值mock)肯定会抛出这个异常。 httpclient的版本应该是可以支持的,因为开始postman单次调用都没有啥问题。 配置截图如下: image

angjuLin commented 2 years ago

我看了一下,你最开始提的和最新发的截图都没有配置转发mock,和你描述的因为配置了转发mock而导致报错不一致,我现在确认下你的场景,首先我看到的是你的queyrCardisBlack接口配置了返回值mock,如果这个接口什么都配置的情况下,发送压测请求是否会报白名单未配置的异常,其次你说异常是不是就是给这个接口配置了你截图这个返回值mock之后,请求这个接口就会抛出异常,其他还有什么现象

huchunyong1987 commented 2 years ago

我看了一下,你最开始提的和最新发的截图都没有配置转发mock,和你描述的因为配置了转发mock而导致报错不一致,我现在确认下你的场景,首先我看到的是你的queyrCardisBlack接口配置了返回值mock,如果这个接口什么都配置的情况下,发送压测请求是否会报白名单未配置的异常,其次你说异常是不是就是给这个接口配置了你截图这个返回值mock之后,请求这个接口就会抛出异常,其他还有什么现象

我之前的说错了,是返回值mock,这次说的是返回值mock。我重新更正了,不好意思。 首先你说接口在什么都配置的情况下,是否会有白名单未配置的异常,我的答复是:在什么都配置的情况下,发送压测流量接口是正常返回的。其次,你说异常是不是就是给这个接口配置了你截图这个返回值mock之后,请求这个接口就会抛出异常,我的答复是:不是,我配置了返回值mock,开始请求几次是正常的,但是一旦请求量多了,就会失效,探针端就会出异常。

huchunyong1987 commented 2 years ago

顶一下~关注

谢谢了

yriiolik commented 2 years ago

你能arthas之类的工具,实际看一下你调用这个返回值mock的方法,是返回了具体的数据还是抛出了异常么? 目前看配置应该没啥问题,除非你们用的 httpclient 版本在这个功能上有bug。可以提供下 httpclient的版本, 我们确定下是否支持这个功能。

你上面截图那个异常应该是正常的mock会抛出的异常,这行日志应该是不需要被打印成error的。 除了这个日志异常,还有其他错误信息么? 比如发送的影子流量后业务日志里抱错了或者其他?

huchunyong1987 commented 2 years ago

你能arthas之类的工具,实际看一下你调用这个返回值mock的方法,是返回了具体的数据还是抛出了异常么? 目前看配置应该没啥问题,除非你们用的 httpclient 版本在这个功能上有bug。可以提供下 httpclient的版本, 我们确定下是否支持这个功能。

你上面截图那个异常应该是正常的mock会抛出的异常,这行日志应该是不需要被打印成error的。 除了这个日志异常,还有其他错误信息么? 比如发送的影子流量后业务日志里抱错了或者其他?

目前没有看到别的异常,就只有这个异常。httpclient的版本是4.5.10。