微服务切换的更新2020/4/07
1.fastJson:
错误:使用JSONObject.toJsonString(reqeuest),本来想打印request的请求参数,但是确报500,不知道怎么回事。
分析:fastJson很流行,自己用起来也很顺手,之前一直使用来打印对象的值,但是这次在调试总确报错退出,不知道为什么。去简单看了源码,JSON和JSONObject具有继承关系,JSON中有很多静态方法,如toJSONString,parse方法等。
可以看到,如果对某些对象不熟悉,使用toJSONString是会报错的。比如错误的get方法。可以使用JSONType来进行注解。还有有value为空时,key不显示的问题。可以通过SerilizeFeature设置。
参考博文:https://www.cnblogs.com/yougewe/p/9433438.html,
https://www.jianshu.com/p/f96e257c7682,
https://www.cnblogs.com/yibutian/p/9473095.html
2.数据库查询性能问题:
错误:服务切换到doker上后,架构师让查看一个api的调用时间为什么那么长。
自己本地调用一下,确实时间很长。中间有一个JSON.parse的方法。我猜这是耗时操作,然后想直接将结果放进对象后返回,改动很大,都想放弃了。然后去看了这个方法,调用了7次数据库操作,然后采用System.currentTimeMillis打印每一个时间,发现一个方法特别长,大概有10s以上。点开这个方法,我震惊了,这里面是for循环中套用for循环,然后调用Mapper方法。
根据打印时间,一次数据库的操作时间大概为50ms,10次:0.5s,100次:5s。所以访问数据库,IO文件等才是一般耗时操作,像parse在内存中计算,都是很快的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?