![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
go-zero gateway 框架
文章平均质量分 57
介绍了下 go-zero gateway 框架的原理 和 启动流程
wanmei002
跟随自己的兴趣走吧
展开
-
go-zero 单体应用框架学习—4 监听端口
框架运行起来先说下思路:注册必要的中间件给每个路由处理函数用中间件处理给路由生成字典树开始监听端口启动入口入口函数 server.Start() ,实际上运行的是 Server.opts.start。在 go-zero/rest/engine.go 文件中的 bindRoute 方法, 这个里面注册了中间件,并对路由处理函数用中间件处理。中间件原理请看这篇文章 ```go func (c Chain) Then(h http.Handler) http.Handler {原创 2021-05-13 15:34:51 · 466 阅读 · 0 评论 -
go-zero 单体应用框架学习—3 路由生成字典树
找到实现 http.Handler 接口的结构体顺着入口函数 server.Start(),找到了 router.NewRouter() 创建的对象实现了 http.Handler 接口创建的对象为 router.patRouter 结构体的实例这个结构体有两个方法Handle 路由生成字典树ServeHTTP 方法实现了 http.Handler 接口,这个方法里有路由匹配,匹配失败的逻辑type patRouter struct { trees map[string]*sea原创 2021-05-13 14:23:23 · 475 阅读 · 0 评论 -
go-zero 单体应用框架学习—2 中间件的添加和原理
中间件的添加在 server.Server 结构体有个一方法 Use // Use adds the given middleware in the Server. func (e *Server) Use(middleware Middleware) { e.ngin.use(middleware) } type Middleware func(next http.HandlerFunc) http.HandlerFunc原创 2021-05-11 13:44:10 · 1757 阅读 · 2 评论 -
go-zero 单体应用框架原理学习—1 路由相关的存储
大纲路由和对应处理方法的存储找到路由匹配的方法(gin go-zero 都是生成字典树)找到实现 http.Handler 接口的结构体上面结构体实现 ServeHTTP 这个方法这个方法里面有路由的匹配,匹配到路由执行对应的方法中间件的添加中间件的运行这一节我们先看看 go-zero 路由是怎么存储的入口方法里有一个 handler.RegisterHandlers(server, ctx),这里面有对应的请求方法 路由 处理路由的方法的存储。存储的结构体为:type原创 2021-05-11 12:20:08 · 1292 阅读 · 2 评论