分类 Framework 中的文章

框架 | Web开发库fasthttp

社区有人弄了个http库,用它可以大幅提升net/http标准库的性能。 项目地址:https://github.com/valyala/fasthttp 参考阅读: https://zhuanlan.zhihu.com/p/408572315 https://zhuanlan.zhihu.com/p/367927669 ………

阅读全文

Go框架 | 微服务治理技巧

Timeout 不管是客户端调用后端,还是后端处理业务逻辑,都存在超出预期时间的情况,这个时候需要有一定的机制能尽快退出处理并返回结果,防止出现大量等待处理的任务,占用系统资源,影响后续其它请求。 参考: https://zhuanlan.zhihu.com/p/171760129 ………

阅读全文

框架 | Go框架中间件实现方式

为了更好的实现GoFast,我看了很多Golang的Web框架,包括比较流行的:Gin、Echo、iris、go-zero等。他们关于中间件的实现有很多相似的地方,但也有特色的地方,这里我们就重点分析一下他们的实现,顺便说说我的看法,最后介绍一下GoFast的实现。 Gin构造中间件数组 Gin框架是对每个路由节点单独构建一个中间件切片, ………

阅读全文

GoFast(三)| 事件生命周期

开发框架要好用,可扩展性、赋予开发者的介入能力很重要。为此我们设计了一套事件机制,让开发人员能够自由介入每次请求的全生命周期,通过Context携带的资源在事件处理函数间自由翱翔。 生命周期 目前事件设计的还很不合理,跟其它模块关联比较多。思路是这样,以后慢慢调整。 Incoming Request │ └─▶ Routing │ └─▶ ………

阅读全文

GoFast(二)| 路由核心基于RadixTree

很多场景中,高效的数据结构都离不开树状结构,什么完全二叉树、红黑树、Radix树、图等好多名词都是具备子孙节点的树状结构,自由灵活的节点内容更让使用者扑朔迷离。一般树都是通过链表来实现,也有通过数组实现的;链表实现自由灵活相对简单,数组实现比较复杂而且不能随意变更节点数量,有其局限性,但是数组实现的内存占用更小更高效。GoFast将采用数……

阅读全文

GoFast(一)| 设计概览

在这里我对GoFast的主要设计思路做一些概要介绍。 框架核心流程 源代码开始的地方:gofast/fst/fst.go 说明:以后我们也把这些后台WebServer叫做Application,简称App。 CreateServer 每个应用都要从这里开始,在这里我们定义了一个配置结构AppConfig,将来所有的配置参数都放在这里面,配 ………

阅读全文

GoFast--README

[Preview] 当前持续完善中,不可生产中使用 [Preview] GoFast Micro-Service Framework GoFast是一个用Go语言实现的微服务开发框架。他的产生源于目前流行的gin、go-zero、fastify等众多开源框架;同时结合了作者多年的开发实践经验,很多模块的实现方式都是作者首创;当然也免不了不 ………

阅读全文

GoFast(零)| 为什么写这个WEB Framework

当前Go语言生态中的WEB开发框架已经有很多了,比如 gin、beego、iris 等,各有各的特点,经过这几年的沉淀已经足够优秀了。那我还不拿来主义直接用,还要再造个轮子干啥呢?大致是因为这几点考虑: gin足够简洁高效,但太简了,我需要继续封装点东西,方便后期开发 beego特性丰富,不过封装的层级太多,代码量大看着头晕,封装过多性能 ………

阅读全文