服务治理&中间件技术 服务治理&中间件技术

Spring6 HTTP interface 初体检 有更新!

  |   0 评论   |   1,547 浏览

从Spring6和SpringBoot3开始, Spring框架支持通过注解的形式将远程HTTP服务代理为Java接口. 类似于FeignRetrofit.

声明式的HTTP接口包括请求的方式等信息.这样我们可以使用带注解的Java接口简单地表达远程API的细节.让Spring生成一个实现该接口并执行请求的代理. 这样可以有效的减少模板代码.

Tomcat 性能调优过程记录系列 - 00 - 背景介绍: 关于图片上传Multipart性能和Thrift流式传输 置顶! 有更新!

  |   1 评论   |   3,251 浏览

此篇文章简单介绍了小猿口算的拍照检查服务的图片处理过程遇到的问题. 我们简单分析了链路中一些可能存在的问题. 主要在于

  1. 使用 multipart/form-data方式图片上传可能存在的阻塞点以及可能的性能问题.
  2. 使用的thrift的RPC接口对于流式传输的不支持导致的参数需要过大的数组进行传输.
  3. thrift实际并不支持数组. 传输使用的是List<Byte> 这个会进一步的降低程序性能. 在数据拷贝时性能会较差.
  4. 由于此RPC接口的响应时间过长,(500ms上下) 导致内存的利率周转率特别低. 这样导致我们需要大量的内存.

image.png

Skywalking: print traceid to log / get traceid (怎样在业务代码中主动获取TraceID) 有更新!

  |   0 评论   |   5,160 浏览

有的时候你的业务系统会对外提供一些服务. 比如HTTP服务. 这样使用方可能是我们C端用户,也有可能是我们的QA同学. 特别是在反馈问题的时候我们希望能够有一个统一的唯一标识符能够提供给用户. 让用户在反馈问题的时候,能够带上一个关键字, 比如相应的请求的带上的时间戳(timestamp). 或者是请求号(requestNo)这样在定位问题的时候能够比较快速的确定问题上下文.进而进行排查. 当然还有比这里刚刚说的两个参数更通用的办法.那就是使用TraceID; 而这篇备忘性质的文章主要是记录基本的处理办法和一部分技术细节.
注意: 此篇文章的方法已经不适用于最新版本的skywalking ,如果你在使用如大于8.2.0版本的代码.请确认是否其它方法