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)。
加载全部内容
Ghidra-Ghidra(反汇编工具)下载 v9.0.4中文版281.6M962人在玩Ghidra反汇编工具是由美国安全局推出的专门用于分析软件和病毒的反汇编工具,通过Ghidra能够对各类代码进行分析,从而判断其漏洞和恶意程序,有需要的可以下载使用。
下载Clash for Windows中文版-Clash for Windows(编程辅助代理工具)下载 v0.17.1中文版191.8M201人在玩ClashforWindows是一款编程辅助代理工具,该软件已经汉化,软件也是绿色的,用户直接打开就能用,软件帮助各种编程平台进行代理管理,更好的帮助用户管理各平台。
下载UltraEdit破解版下载-UltraEdit下载 v27.10.0.1392.3M153人在玩UltraEdit是一套功能超级强大的文本编辑器,能够满足你一切编辑需要,UltraEdit可以编辑文本、十六进制、ASCII码,可以取代记事本内建英文单字检查、C++及VB指令突显,可同时编辑多个文件。
下载makecode离线版-makecode(离线编程软件)下载 v3.6.3官方版232.4M83人在玩makecode离线版是一款为了方便没有网络或是网络较差的学校进行Microbit教学的软件,不受网络限制,随时都可以使用,界面和官方界面是一模一样的,使用上也是一模一样的,是一款非常好用的软件。。
下载ilspy下载-ilspy反编译工具下载 v7.0.0.6488官方中文版3.3M82人在玩ilspy反编译工具是一款强大的反编译工具适用于.net平台使用ilspy反编译工具可以轻松的反编译C#及VB程序马上下载这款中文版的ILSpy反编译工具吧。
下载aetool编程器破解版-AE Tool下载 v5.5官方版11.2M67人在玩AETool是一款安卓EMMC编程工具,通常用于给手机和各类平板电脑的EMMC进行读写和编程工作,是一款非常专业的维修和root软件,有需要的可以下载使用。
下载鱼跃CMS-鱼跃CMS下载 v2.2.15官方版4.1M63人在玩鱼跃CMS是鲶鱼CMS开发的一款面向企业的内容管理系统,是目前最轻量的内容管理系统,鱼跃CMS包含了企业建站所需的不同功能模块,例如新闻中心、产品中心、单页面、网站基本组件块、企业信息等,可以帮助您方便地实现各类展示效果的企业网站。
下载大漠插件破解版-大漠综合工具下载 v7.2119免费版8.7M54人在玩大漠综合工具是一款识图找字模拟插件,能够帮助用户轻松识别图片中的文字,大漠综合工具集前后台,文字识别,图色,键鼠,窗口,内存,DX,Call等功能于一身。
下载DBF Viewer 2000(数据库浏览工具)下载 v5.95中文版3.5M49人在玩DBFViewer2000数据库浏览工具是一款标准的xBase数据库浏览工具,而且还是一个xBase编辑器。DBFViewer2000支持Clipper、FoxPro、VFP、DB2KDBF等多种文件格式;还拥有自动关联.DBF文件和快速浏览的功能。。
下载appium for windows下载-Appium(自动化测试工具)下载 v1.15.1官方版142.9M47人在玩AppiumForWindows是一款开源的、多平台的自动化测试工具,原来主要是一个移动端的自动化框架,可用于测试原生应用,现在在windows、mac上也有GUI程序,提供给大家的是windows版本,有需要的赶快下载吧。
下载