美文网首页
服务网关产品(三)日志处理

服务网关产品(三)日志处理

作者: de_self | 来源:发表于2020-03-18 15:22 被阅读0次

    日志是网关的重要组成部分,所产生的数据可用于信息留存,安全审计,数据分析等众多方向,由于调用频次高,作用时间长,信息量很大。因此,网关日志信息的采集与存储。

    审计日志处理.png

      网关担任着转发的功能,是对外提供服务的唯一出口,调用性能将直接影响整个平台的体验,对于性能要求很高,为此,认证与鉴权信息我们使用xxl-job配置了定时任务,定时刷新认证信息与直接写入redis内存数据库中,再用reids的认证信息请求,若被拒绝则重新调用接口刷新redis中信息,提高网关性能。但日志数据量较大,不易写入内存数据库,但直接使用mysql等关系型数据库记录日志信息,会写崩数据库,因此首先我们采用异步处理日志数据的写入,同时使用kafka消息队列处理,再写入mysql中进行持久化,或者将kafka作为存储中间件,存在kafka中等待其他应用消费。其次,由kafka作为流处理中间件与sparkstreaming/flink等流处理中间件整合,可以将日志数据以流的形式传入中间件中进行流处理。为了网关专注于网关功能,将业务性操作独立出来,我们搭配了servic-service工程。service-service负责认证数据的写入redis,刷新认证秘钥数据,对外提供网关的供需接口,数据修改接口等功能。
      redis数据库稳定性相对较低,在各个项目的系统运行过程中redis的崩溃概率明显高于普通关系型数据库,因此在redis数据存储的数据,要进行持久化,且redis数量级达到一定程度后,性能下降严重(目前正在思考问题)。
      日志信息数据量较大,在我们初级的业务场景中,主要涉及到的日志数据的查询与简单统计,1.0版本我们使用的mysql数据库直接存储,2.0版本上我们引入了ElasticSearch作为数据的检索工具,3.0版本引入流处理中间件进行数据的实时处理。

    我认为开源组件越来越多,越来越优秀

    对网关每一行代码的慎重处理

    是保持网关高性能的关键,也是我们进步的关键

    相关文章

      网友评论

          本文标题:服务网关产品(三)日志处理

          本文链接:https://www.haomeiwen.com/subject/uatcyhtx.html