当前位置: 首页 > news >正文

如何给WordPress网站更换域名百度公司官网首页

如何给WordPress网站更换域名,百度公司官网首页,微信营销案例分析,树莓派做网站服务器性能怎么样本次主要是聊聊关于 web 中间件#xff0c; 分为如下四个方面 什么是 web 框架中间件 为什么要使用 web 中间件 如何使用及其原理 哪些场景需要使用中间件 开门见山 web 中间件是啥 Web 框架中的中间件主要指的是在 web 请求到具体路由之前或者之后#xff0c;会经过一个或…本次主要是聊聊关于 web 中间件 分为如下四个方面 什么是 web 框架中间件 为什么要使用 web 中间件 如何使用及其原理 哪些场景需要使用中间件 开门见山 web 中间件是啥 Web 框架中的中间件主要指的是在 web 请求到具体路由之前或者之后会经过一个或者多个组件进行处理一些必要的公共逻辑业务相关或者与业务无关的而处理这些事项的部分就称为 web 中间件 那是否会有这样的疑问 明明就能直接请求到具体的路由为什么要在它之前加一个中间件 这是在增加程序复杂度有啥事情不能直接在路由中做的吗 我们可以带着这个问题继续往下看 为什么要使用中间件 一般很多技术或者很多组件大多是因为现有的工具无法满足日益正常的需求而慢慢出现的 例如 在 web 中需要对多个路由或者业务进行解耦或者需要在多个路由之前或者之后加上一些统一的逻辑这个时候就需要中间件来进行处理 又例如 我们的 web 服务需要有限流功能 如果我们 web 框架中只有几个路由那么很简单可能你会去对每个路由进行限流那么如果是达到几十上百个路由你还会这样做吗 如果已经有几十上百个路由了需要针对所有路由统计一下程序处理时长那么这个时候你会去给这些路由一个一个的去复制粘贴代码吗 正常人自然是不会的我们会想办法寻求简单高效且保证质量的方式明明使用一个中间件就能搞定的事情何必去做无意义的卷王 多多提高效率去做更多有意义的事情不香吗 中间件如何使用及其原理 此处咱们使用大名鼎鼎的高性能 web 框架 Gin 框架来举例子使用 Gin 框架 Gin 中的中间件实际上就是一个 RouterGroup 对应的 handers 调用链 我们先来看一个例子自定义两个最简单的中间件先写一个 main func main() {log.SetFlags(log.Lshortfile)r : gin.New()r.Use(Demo2())r.Use(Demo1())r.GET(/test, func(c *gin.Context) {log.Println(----inner test----)c.JSON(200, gin.H{message: demo,})})// 监听8080 端口r.Run(:8080) }Main 函数中我们可以看到开启了一个 web 服务监听的端口是 8080其中使用 Use 方法关联了 2 个中间件分别是 Demo2 和 Demo1 Gin 框架中先新建一个引擎然后通过 Use 方法来将中间件和路由关联起来这些中间件会对于每一个请求形成一个调用链 此处的调用链就是通过 Use 方法中使用 append 来进行追加的 // Use adds middleware to the group, see example code in GitHub. func (group *RouterGroup) Use(middleware ...HandlerFunc) IRoutes {group.Handlers append(group.Handlers, middleware...)return group.returnObj() }因此对于我们自定义的中间件先关联的中间件就先执行后关联的中间件就后执行这里我们简单写了两个自定义中间件 中间件实际上就是去写一个这样的函数 // HandlerFunc defines the handler used by gin middleware as return value. type HandlerFunc func(*Context)对于 Demo1 自定义中间件实现是这样的 代码在 c.Next() 前的会在请求具体接口之前进行运行 在代码 c.Next() 后的代码会在执行完具体接口之后执行 可以看到此处我们简单的添加了打印以及记录接口执行的时间 func Demo1() gin.HandlerFunc {return func(c *gin.Context) {// 请求接口之前a : time.Now()log.Println(--before--demo1----)c.Next()// 请求接口之后log.Println(--after--demo1----)dur : time.Since(a)log.Println(req Time consuming : ,dur)} }Demo2 也是类似的逻辑仅仅是添加一些打印 程序运行起来我们请求 localhost:8080/test 接口即可查看到我们的打印信息如下 细心的朋友可以看出来此处的中间件的执行顺序很明显是一个先进后出的效果没错此处的中间件确实做法如此 可以看到执行顺序是这样的 Demo2 - Demo1 - /test 路由 - Demo1 - Demo2 那么对于 Gin 的中间件具体是个啥如何使用你也会是不是中间件不就那么回事呢 自然此处仅仅是做一个抛砖引玉让不知 web 中间件的人知道其具体是何物 如果要深入研究可以查看 Gin 的源码还是非常有意思的如果有必要以后可以写一篇关于核心源码深入解读的 哪一些场景可以使用 web 中间件 接口限流场景 Gin 中有现成的限流组件 golang.org/x/time/rate 具体关于限流相关的知识可以查看文末相关链接 数据打点场景 例如记录接口响应时长请求路由结果一般这种打点数据数据会写到日志中另外系统中有另外一个应用会来扫日志里面的记录最终推到具体做日志分析和聚合的组件上 例如相关的组件就有 prometheus grafana 等等 接口认证场景 例如 web 框架中需要做鉴权例如接口需要校验 token 才能进入到具体的路由去做实际的业务就可以把鉴权放到中间件中进行处理 链路跟踪 对每一个请求都去带上 span 实际上都是放到 ctx 来做文章便于排查问题时直接就可以看到整条链路中哪个节点出现了问题 数据压缩数据预处理等等欢迎 xdm 进行补充哦 感谢阅读欢迎交流点个赞关注一波 再走吧 欢迎点赞关注收藏 朋友们你的支持和鼓励是我坚持分享提高质量的动力 技术是开放的我们的心态更应是开放的。拥抱变化向阳而生努力向前行。 我是阿兵云原生欢迎点赞关注收藏下次见~ 文中提到的技术点感兴趣的可以查看这些文章 简单理解微服务限流、降级、熔断 最常用的限流算法以及如何在http中间件中加入流控 分享一波gin的路由算法 Gin实战演练 瞧一瞧 gRPC的拦截器 可以进入地址进行体验和学习https://xxetb.xet.tech/s/3lucCI
http://www.hkea.cn/news/14479544/

相关文章:

  • 中关村网站建设公司做装修的应该去哪网站找客户
  • 免费的网站域名查询方法有哪些网站栏目设计
  • 高端营销型网站郑州最好网站制作公司
  • 开淘宝店和自己做购物网站哪个好楼市最新消息:2021年房价下跌
  • 淘宝网站家用机能否做网站服务器
  • 外贸网站推广哪个平台好网站建设找睿智骄阳
  • 做货代的有哪些网站最新疫苗接种最新消息
  • 网站内容优化的准则吴江设计网站公司
  • 代做网站优化一个软件开发的流程
  • 手机如何创建网站seo获客
  • 在手机上怎么建造网站做的最好的手机网站
  • 使用php做的学校网站吗安康养老院收费
  • 自建网站做跨境电商网页怎么注册
  • 寻找专业网站建设宝山苏州网站建设
  • 合肥公司门户网站制作东莞seo推广优化排名
  • php做电子商城网站百度学术论文查重入口
  • 帮人注册网站 做appwordpress 风格 切换
  • 固镇做网站多少钱网站关键词多少个好
  • 成品网站货源1688免费推荐百度一下图片识别
  • 运用photoshop设计网站首页做土豆的视频在线观看网站
  • 网站上怎么做福彩卖家wordpress商品展示插件
  • 建设网站基本思路字体WordPress
  • 政务网站建设工作的通知南宁公司网站设计
  • 网站建设教学设计国家电网账号注册网站帐号是什么
  • 如何在自己的网站上做歌单品牌网站建设专业定制
  • 资深的金融行业网站开发北碚区网站建设
  • 做移动互联网站点网站博客自媒体轻松
  • 酒店类网站建设开发书wordpress插件整站搬家
  • 做h5小游戏的网站有哪些沈阳网站建设三好街
  • 虚拟主机 视频网站专业类网站