0%

前言

在排查错误时通常都需要通过日志来查看接口的请求参数和响应结果来定位和分析问题,一般我们都会使用一个Filter来做一些简单的请求日志记录,但是默认情况下 Spring Boot 是不支持记录请求体响应体的,因为请求体和响应体都是以流的方式对外提供调用,如果在Filter中把请求体和响应体读完了,就会使后续的应用读不到流数据导致异常。

阅读全文 »

前言

feign 是一个非常好用的 http 客户端工具,它是一种声明式的 http 客户端,只需要声明好接口即可调用,不需要关注底层的请求细节。
通常情况下都是在 Spring Cloud 项目中使用,这里我把它单独整合到 Spring Boot 中,用来替代RestTemplate,提高项目可维护性。

阅读全文 »

YApi 简介

YApi 是去哪儿网开源的一个高效易用功能强大的 API 管理平台,它拥有接口管理,接口调试,接口测试,Mock 等等一系列特性,并且支持导入和自动同步swagger文档,可以直接将现有的所有项目swagger文档无缝迁移到 YApi 上统一管理,真的是不讲武德!

官方已经部署了一套公有服务进行演示,直接访问https://yapi.baidu.com即可快速体验。

阅读全文 »

最近换工作,面试发现很多公司都爱问 TCP 协议,所以根据自己的理解总结了一份手记仅供面试使用。

阅读全文 »

前言

要把自己的 JAVA 项目发布到 Maven 中央仓库上,这个过程非常的麻烦,而且由于 Maven 中央仓库的严谨性,每次发布都需要登录到Nexus网站手动进行流程确认,并不支持纯命令行式的部署,导致无法做到真正的CI/CD,为了弥补这一点,我抓包分析了一下Nexus API并且开发了一个Github Action(maven-nexus-release)用于自动的CloseRelease,从而达到真正的全自动部署。

阅读全文 »

在业务开发中经常会使用枚举来定义一些业务常量,这确实可以让我们的代码变的干净和优雅,但是如果枚举使用不当的话很可能就会发生问题,这里分享一些关于枚举最佳实践。

阅读全文 »

在 go 语言里启动一个 http 服务非常简单,只需要一行代码http.ListenAndServe()就可以搞定,这个方法会一直阻塞着直到进程关闭,如果这个时候来了些特殊的需求比如:

  • 监听服务启动
  • 手动关闭服务
  • 监听服务关闭

在 go 中应该怎么实现呢?下面来一一举例。

阅读全文 »

前言

在 linux 中我们经常会使用&符号让进程在后台运行,例如:

1
nohup java -jar app.jar &

但是这样的话在终端就看不到输出了,有时候临时需要排查问题看不到输出就 GG 了。

解决办法

其实可以利用proc系统文件来访问程序对应的输出:

  1. 首先获取到进程对应的PID
  2. 通过tail命令读取输出:
1
2
3
4
#获取标准输出
tail -f /proc/<PID>/fd/1
#获取错误输出
tail -f /proc/<PID>/fd/2