抄写一个简单的Golang中间件
Posted 企业与信息安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抄写一个简单的Golang中间件相关的知识,希望对你有一定的参考价值。
以上为这个简单的中间件的简要结构,那我们先来看下其中的核心部分,即承担中间件的部分。
Chain里面可以由多个method运行(参数中的...代表了可以传递多个参数),每个method都是一个中间件,在这里的中间件就是第一张图中最上面的logging函数。更究其根本能运行是因为http提供了HandleFunc,因此使得函数可以处理http Request。
下面看下这个logging中间件的具体实现:
传递Request的引用进来,进行操作。正常情况下的其他中间件会针对Request进行处理,而此例中仅仅进行了日志记录。
可以想象为中间件为工厂上的流水线,一个Request过来,不同的中间件按照先后顺序开始对Request加工。日志记录,接口鉴权,安全性检测,数据响应等等。所以也可以延伸出来一个新的问题,那么就是API Gateway和API Middleware的区别在哪里?
最后,不妨用wrk测一下写了个中间件之后对性能的影响。一般在公司中,接口QPS的95%和90%数值下的cpu占用资源也会作为衡量的标准之一。
以上是关于抄写一个简单的Golang中间件的主要内容,如果未能解决你的问题,请参考以下文章