
标签: fasthttp
fasthttp是一个用于Go的快速HTTP包,针对高性能进行了调整,在热路径中实现零内存分配,比net/http快10倍以上,目前,fasthttp被VertaMedia成功地用于生产中,为每台物理服务器上超过150万个并发的保持连接提供200K rps的服务。
![]()
为什么要创建另一个http包而不是优化net/http?
因为 net/http API 限制了许多优化机会。比如说。
net/http 请求对象的寿命不受请求处理器执行时间的限制。所以服务器必须为每个请求创建一个新的请求对象,而不是像 fasthttp 那样重复使用现有的对象。
net/http 头信息被存储在 map[string][]string 中。所以服务器必须解析所有的头信息,将它们从[]字节转换成字符串,并在调用用户提供的请求处理程序之前将它们放入map中。这一切都需要不必要的内存分配,而fasthttp则可以避免。
net/http客户端API需要为每个请求创建一个新的响应对象。
为什么fasthttp API与net/http不兼容?
因为net/http API限制了许多优化机会。更多细节见上面的答案。同时,某些net/http API的部分也是次优的使用方式。
比较net/http的连接劫持和fasthttp的连接劫持。
比较net/http的Request.Body读取和fasthttp的请求体读取。
为什么fasthttp不支持HTTP/2.0和WebSockets?
HTTP/2.0的支持正在进行中。WebSockets已经完成了。第三方也可以使用RequestCtx.Hijack来实现这些好东西。
与fasthttp相比,net/http是否有已知的优势?
是的。
net/http 从 go1.6 开始支持 HTTP/2.0。
net/http的API是稳定的,而fasthttp的API是不断发展的。
net/http 可以处理更多的 HTTP 角落情况。
net/http 应该包含更少的 bug,因为它被更多的人使用和测试。
net/http可以在1.5以上的Go上工作。
为什么 fasthttp API 倾向于返回 []byte 而不是字符串?
因为[]字节到字符串的转换不是免费的 - 它需要内存分配和复制。如果你喜欢用字符串而不是字节片来工作,可以随意将返回的[]byte结果包装成string()。但请注意,这有非零的开销。
fasthttp支持哪些GO版本?
Go1.5以上。旧的版本将不被支持,因为它们的标准包缺少有用的功能。
注意:Go 1.9.7是最老的测试版本。我们建议你尽快更新。从1.11.3开始,我们将放弃对1.9.x的支持。
请提供真实的基准数据和服务器信息
请看这个问题。
是否有计划向fasthttp添加请求路由?
没有计划将请求路由添加到fasthttp中。使用第三方路由器和支持fasthttp的web框架。
fasthttp-routing
路由器
框架
lu
阿特雷戈
光纤
齿轮箱
更多信息请参见此问题。
我在fasthttp中检测到了数据竞赛!
酷! 归档一个错误。但是在这样做之前,请在你的代码中检查以下内容。
确保从RequestHandler返回后没有对RequestCtx或其成员的引用。
确保在从RequestHandler返回之前调用TimeoutError,如果有对RequestCtx或其成员的引用,这可能会被其他goroutine访问。
我在这里没有找到我的问题的答案
试着探索一下这些问题。
v1.28.0
620f0c8 增加中间件设置自定义远程地址的选项(#1009)(Lauris BH)。
894272e 修复golangci-lint动作(#1010)(Lauris BH)。
1:该下载地址为九点软件园本地下载地址,fasthttp下载包预览图如下:

2:下载包的正确包名:fasthttp_v1.28.0_9a9m.com.zip
DBC2000汉化免费版 v5.6.5官方版7.8MB46次下载DBC2000破解版是一款免费开源的数据库处理工具,这款软件不仅可以在Windows XP、Windows 7、Windows Vista等多种操作系统上进行使用。而且我们还可以通过DBC2000破解版百度云来打开Oracle、Sybase、MS SQL、Interbase等多种格式的数据库文件。
下载
C#API官方手册2.5MB105次下载C#API官方手册,是关于C#语言的开发帮助文档,C# 是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,可以像JavaAPI一样搜索查找,包内含有chm和pdf两种格式。
下载
Thonny(Python编辑器) v3.3.13官方版27.6MB1254次下载Thonny是一款Python编辑器,基于python内置图形库tkinter开发出来的,支持Windows、Mac、Linux多平台,支持语法着色、代码自动补全、debug等功能,软件容易上手!
下载
火山软件开发平台 V2.0绿色破解版1.2GB4020次下载火山软件开发平台是九点软件园为编程开发用户分享的全新专业且深受诸多用户们喜爱的软件开发编程工具应用,是一种目的硬件设备无关、目的软件环境无关、易学易用实用、完全本地化的软件快速开发平台,欢迎有需要使用火山软件开发平台的朋友通过九点软件园下面地址来获取吧!
下载
易语言 v5.11 绿色精简版99.3MB271次下载易语言是以中文作为程序代码的一款编程工具,软件秉持方便中国人以中国人的思维编写程序的观念,用户可以使用汉语字、词来进行编程,轻松编写出各种代码程序。易语言可以说是大大降低了编程的门槛,让很多不懂英文的用户也可以轻松编写各种程序。
下载
易语言编程软件 v5.8.3 绿色免费版99.3MB114次下载易语言是九点小编为大家推荐的额一款纯中文的编程软件,软件主要针对中文编程爱好者开发,让用户可以使用中文来进行编程工作,轻松编辑出各种程序。易语言大大降低了编程的门槛,让用户无需学习英文代码,只需要通过中文就可以完成编程工作。
下载
易安卓E4A(含破解补丁)v7.1.14免注册版500.44MB5253次下载易安卓E4A是九点小编为大家推荐的一款非常好用并基于谷歌Simple语言、专为安卓系统开发应用打造的编程辅助工具软件,让安卓开发无限简单,可以说是安卓版本的易语言程序。
下载
SQL Server 2016中文免费版1.86GB44次下载SQL Server 2016中文版是一款由微软官方所推出的数据库管理软件,这款软件采用了简洁直观的操作界面并且更是在这基础上加入了非常实用的功能,相关用户在这里无需经过专业学习便可以进行数据管理、数据分析等一系列操作,能够很好的缓解了相关用户的工作、学习压力。另外,该软件还支持多种类型的数据,解决了用户的燃眉之急。
下载
Microsoft SQL Server 2005企业版2.2GB313次下载Microsoft SQL Server 2005企业版是九点小编为大家推荐的一款常用的数据库软件,是Microsoft 公司推出的关系型数据库管理系统,具有使用方便可伸缩性好与相关软件集成程度高等优点,是一个全面的、集成的、端到端的数据解决方案!
下载
Microsoft SQL Server 2005 向后兼容包10.1MB443次下载Microsoft SQL Server 2005 向后兼容包是一款微软推出的让旧版本SQL可以向新版本的 Data Transformation Services 2000 运行库 (DTS)、SQL 分布式管理对象 (SQL-DMO)、决策支持对象 (DSO) 和 SQL 虚拟设备接口 (SQLVDI)能够兼容运行的兼容包。
下载