Fiber高性能web框架

简介: Fiber高性能web框架

640.png

Fiber高性能web框架



Fiber介绍


Fiber是基于使用Go语言编写的最快的HTTP引擎fasthttp构建。旨在通过零内存分配高性能服务,使快速开发web服务更加简单。


关于fasthttp做一个简单的介绍:fasthttp是一款高性能网络请求库。如果我们的服务需要每秒处理数千个请求,并且需要一致的低毫秒响应时间,那么fasthttp是最佳选择。否则对于大多数情况来说,net/http更好,因为它更易于使用并且可以处理更多情况,比如gin框架底层网络请求就是用net/http实现的。同时这也从侧面说明,Fiber的请求与Gin在处理requestresponse上是不兼容的。


实例


package main
import "github.com/gofiber/fiber/v2"
func main() {
    app := fiber.New()
    app.Get("/", func(c *fiber.Ctx) error {
        return c.SendString("Hello, World 👋!")
    })
    app.Listen(":3000")
}


我们可以看到创建一个服务实例是非常简单的,使用中间件也是和Gin框架类似,只需要用Use注册即可。比如:


func main() {
    app := fiber.New()
    // Match any route
    app.Use(func(c *fiber.Ctx) error { // 全局中间件 所有请求都会进入
        fmt.Println("🥇 First handler")
        return c.Next()
    })
    // Match all routes starting with /api
    app.Use("/api", func(c *fiber.Ctx) error { // /api中间件 只有api前缀的才可以进入
        fmt.Println("🥈 Second handler")
        return c.Next()
    })
    // GET /api/register
    app.Get("/api/list", func(c *fiber.Ctx) error {
        fmt.Println("🥉 Last handler")
        return c.SendString("Hello, World 👋!")
    })
    log.Fatal(app.Listen(":3000"))
}


基准测试


640.png

上图可以看出Fiber每秒处理请求数达到惊人的35万次,而fasthttp也是这个上限,它俩不相上下。可以看到Gin框架大概在5万/秒,差距不是一般的大。


上图可以看出Fiber分配内存更快,几乎在60ms以内就可以完成,速度相当惊人。


特点


  • 强大的路由
  • 静态文件服务
  • 极限性能
  • 低内存占用
  • API接口
  • 中间件和Next支持
  • 快速服务器端编程
  • 模版引擎
  • WebSocket支持
  • 频率限制
  • 15种语言


限制


  • 由于Fiber使用了unsafe特性,导致其可能与最新的Go版本不兼容。Fiber 2.18.0已经在Go1.141.17上验证过。
  • Fibernet/http接口不兼容。这意味着你无法使用gqlengo-swagger或者任何其他属于 net/http生态的项目。


总结


推荐大家使用Fiber去构建自己的高性能web微服务,尤其是高并发处理大量请求领域优先使用。Fiber目前已经很成熟了,具体大家可以参考官网:

https://learnku.com/docs/gofiber/2.x/fiber-project-introduction/11720#dc7277

相关文章
|
12天前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
|
19天前
|
开发框架 缓存 前端开发
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
|
29天前
|
开发框架 JSON API
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
【7月更文挑战第22天】在Python Web开发中,设计高效的RESTful API涉及选择框架(如Flask或Django)、明确资源及使用HTTP方法(GET, POST, PUT, DELETE)来操作数据。响应格式通常是JSON,错误处理也很重要。示例展示了使用Flask创建图书管理API,包括版本控制、文档化、安全性和性能优化是最佳实践。这样的API使数据交互更顺畅。
59 2
|
4天前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
16 1
|
5天前
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
|
7天前
|
PHP 数据库 开发者
探索PHP的现代演变:从Web开发到框架创新
【8月更文挑战第13天】本文将深入探讨PHP语言自诞生以来的发展历程,特别是它在Web开发领域的演进和在现代框架中的创新。我们将回顾PHP的历史,分析其在不同阶段面临的挑战及解决方案,并讨论PHP如何适应新的编程范式和技术需求,以及这些变化对开发者社区的影响。
18 2
|
7天前
|
安全 前端开发 Java
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
在Web安全上下文中,源(Origin)是指一个URL的协议、域名和端口号的组合。这三个部分共同定义了资源的来源,浏览器会根据这些信息来判断两个资源是否属于同一源。例如,https://www.example.com:443和http://www.example.com虽然域名相同,但由于协议和端口号不同,它们被视为不同的源。同源(Same-Origin)是指两个URL的协议、域名和端口号完全相同。只有当这些条件都满足时,浏览器才认为这两个资源来自同一源,从而允许它们之间的交互操作。
10 0
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
|
14天前
|
缓存 监控 前端开发
WEB前端三大主流框架:React、Vue与Angular
在Web前端开发中,React、Vue和Angular被誉为三大主流框架。它们各自具有独特的特点和优势,为开发者提供了丰富的工具和抽象,使得构建复杂的Web应用变得更加容易。
42 6
|
18天前
|
安全 JavaScript Go
探索PHP的现代演进:从Web开发到框架创新
在数字化时代的浪潮下,PHP作为一门历史悠久且广受欢迎的编程语言,其发展轨迹映射了Web开发的变迁。本文将通过具体实例和数据分析,探讨PHP如何适应现代Web开发的需求,特别是其在流行框架中的角色演变,以及这些变化如何激发开发者社区的创新精神。
30 2
|
18天前
|
SQL 安全 PHP
探寻PHP的现代演进之路:从Web开发到框架创新——揭秘PHP语言如何引领技术潮流
【8月更文挑战第2天】探索PHP的现代演进:从Web开发到框架创新
26 1