Java统计所有接口_Api接口统计通用组件(附源码)

本文介绍了如何使用Java实现一个统计服务接口调用情况的通用组件。通过自定义Spring拦截器,获取请求信息并存储在ThreadLocal中,接口调用结束后异步发送到Kafka,再由ClickHouse进行统计。组件只需简单依赖和注解配置即可接入。
摘要由CSDN通过智能技术生成

正版包邮通用源码阅读指导书软件

68.7元

包邮

(需用券)

去购买 >

0f4edcb5a47cab5779d5503295440965.png

转自:https://blog.csdn.net/appearb...

目录

https://segmentfault.com/a/11900000382304751.需求

https://segmentfault.com/a/11900000382304752.设计思路

https://segmentfault.com/a/11900000382304753.架构图

https://segmentfault.com/a/11900000382304754.具体实现

https://segmentfault.com/a/11900000382304751.定义拦截器

https://segmentfault.com/a/11900000382304752.获取接口参数服务

https://segmentfault.com/a/11900000382304753.对外需要导入的注解

https://segmentfault.com/a/11900000382304755.同步到ClickHouse

https://segmentfault.com/a/11900000382304756.外部系统使用

https://segmentfault.com/a/11900000382304757.结束

1.需求

记录服务接口调用情况,包括通用字段:域名、IP、接口路径、查询参数、是否成功、请求时间、耗时、错误信息、接口名;以及业务自定义字段

做成通用组件的形式,最小化的侵入业务系统

2.设计思路

自定义Spring拦截器,获取通用字段,以及业务自定义字段放到ThreadLocal,接口调用完成后异步发送到Kafka,然后消费到ClickHouse进行统计

需要统计的服务只需要依赖本组件,加一个注解,并配置指定的kafka地址即可

3.架构图

1605836900218930.jpg

t_73828.html

4.具体实现

1.定义拦截器

在接口调用前初始化并从request里获取ip、域名、请求时间、请求参数等

接口调用后设置接口耗时、错误信息等;需要删除该线程的ThreadLocal对象,因为spring的请求线程会在线程池里复用,如果不删掉,后续请求会用到该线程的ThreadLocal数据package cn.xianbin.apistat.interceptor;

import cn.xianbin.apistat.service.ApiStatService;

import lombok.extern.slf4j.Slf4j;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import org.springframework.web.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值