iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >hyperf 优点、缺点 分析
  • 559
分享到

hyperf 优点、缺点 分析

开发语言php 2023-09-11 21:09:31 559人浏览 泡泡鱼
摘要

前引 hyperf 我所熟悉的是基于swoole驱动的模式(协程)。 hyperf 完全取代了PHP-fpm,即是Nginx转发请求不再转发给php-fpm ,而是转发给hyperf启动的进程处理。(

前引

hyperf 我所熟悉的是基于swoole驱动的模式(协程)。
hyperf 完全取代了PHP-fpm,即是Nginx转发请求不再转发给php-fpm ,而是转发给hyperf启动的进程处理。(甚至于hyperf 也可越过nginx 直接处理用户请求,但一般我们会在前面加一个代理(nginx)来转接请求)

hyperf的优点

  • 协程的支持:基于swoole的请求协程化,一个请求对应一个协程。但因协程是用户线程(用户创建的线程,所以这个线程的声明周期及何时发生上下文切换均由我们自己管理)。所以无法使用多核cpu的特性(意为在一个含有协程的进程中同时运行多个协程)。如果要使用多核cpu的特性,就需要使用多进程模型(多个进程监听同一个端口,采用惊群现象处理请求,每个cpu负责一个含有协程的进程)
  • 微服务化:便捷简单微服务化支持,我仅了解JSON-Http rpc协议,grpc太复杂暂不了解。且有完善的分布式事务支持(Go 语言编写的DTM 事务协调器,使用这个协调器对接hyperf实现稳定的分布式事务),熔断及降级,服务重试等。
  • 运行速度极快:因采用协程,所以运行速度快(但要注意阻塞问题,同一时刻只有一个协程在跑,如这个协程在运行时产生的阻塞是否会使cpu产生等待问题需要考虑。(比如与Mysql建立连接是否会使cpu堵塞在这个协程上))
  • 与其他框架(laravel)在结构上、组件功能上无较大差异:路由、验证器、中间件ORM、队列、请求、响应、控制器、命令、测试、限流、异常处理等。(可快速上手)
  • 新增守护进程支持,一次启动,即可长时工作在任务后台(如队列监听守护进程,也可创建一个proccess 对象,自定义这个守护进程的逻辑)
  • mysql连接池,Redis连接池 快捷实现(主要用于解决程序运行需要和mysql建立连接产生的阻塞问题,mysql连接数问题)

hyperf的缺点

  • 瞬时流量爆发(如秒杀、红包等场景)
    a、 此场景下会在进程中产生大量的协程,每个协程都需要建立mysql连接时会导致mysql连接数耗尽而导致mysql抛出连接数异常
    b、每个协程在创建成功后会被分配多少内存,当数量过多后是否会挤爆进程(受操作系统和配置的影响),导致无法对外提供服务
    c、当采用数据库连接池解决连接数问题后,mysql数据库iops指标是否能满足需求。(单位时间内的读写能力是否能支撑这么高的迸发)
    d、当采用队列消息时,如果队列过长,且因意外原因,导致了服务器重启,如何恢复队列任务的执行(redis方案不可取,redis一旦重启,内存数据就没了,虽然可以采用数据持久化,但一般来说很少用redis来存储数据。查阅官方文档并无mysql数据库队列消息的实现,估计只有自己去封装一个包来实现mysql队列任务了)

还有其它很多需要考虑的问题点,本次就暂时整理这些。
写下这篇文章并不是反馈hyperf不好,反之,hyperf 很好。他实现了php 微服务化,且针对微服务也做了负载,Nacos等的支持。他让php在框架选型的范围上有了更多的支持。
但是学习和使用hyperf框架需要较强的技术知识

关联技术知识

  • linux操作系统基本命令的熟悉

  • lnmp环境搭建(开发环境一般采用宝塔来搭建)

  • windows上搭建linux虚拟机(我采用hyper-v Windows扩展工具搭建,但要cpu支持虚拟化,如不支持需要进入dos命令界面开启cpu虚拟化)如ubuntu

  • phpstorm 搭载ftp协议与虚拟机ubuntu进行文件交互(达到本地修改或删除直接自动同步至虚拟机ubuntu指定目录)
    在这里插入图片描述

  • 进程方面的知识:进程的状态,进程的调度,cpu在线程和进程上发生上下文切换时所做的工作

  • nginx代理

  • nginx的工作模式(master-work),hyperf swoole 驱动的工作模式

  • 多线程编程知识:主要考虑同一进程中,线程之间共享内存(程序运行可能产生的内存溢出,脏数据的产生等问题)

  • swoole 协程 方面知识

来源地址:https://blog.csdn.net/u014559227/article/details/127267617

--结束END--

本文标题: hyperf 优点、缺点 分析

本文链接: https://www.lsjlt.com/news/403730.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • hyperf 优点、缺点 分析
    前引 hyperf 我所熟悉的是基于swoole驱动的模式(协程)。 hyperf 完全取代了php-fpm,即是nginx转发请求不再转发给php-fpm ,而是转发给hyperf启动的进程处理。(...
    99+
    2023-09-11
    开发语言 php
  • JQuery优缺点分析说明
    1、jQuery实现脚本与页面的分离  在HTML代码中,我们还经常看到类似这样的代码:  <form id="myform" onsubmit=retu...
    99+
    2022-11-21
    优缺点
  • 云服务器有哪些优点与缺点和缺点分析
    云服务器(Cloud Storage,也称为云存储)是一种基于互联网的服务器虚拟化技术,它通过网络将数据、应用程序和其他业务程序托管到各种公共云上。与传统的本地服务器不同,云服务器通过互联网提供服务,无需物理服务器即可运行。 以下是云服务...
    99+
    2023-10-26
    缺点 优点 服务器
  • 云服务器有哪些优点和缺点和缺点分析
    云服务器(Cloud Storage, CS)是一种提供高性能计算和存储服务的云计算服务。在云服务器的基础上,用户可以使用公共云、本地部署等方式进行存储、计算、备份等各种计算资源的管理,以及进行数据存储和备份,同时还可以进行应用开发、部署、...
    99+
    2023-10-26
    缺点 优点 服务器
  • 分析Golang中接口的优点和缺点
    Golang中接口的优势与不足分析 引言:Golang是一门由Google开发的高性能编程语言,其特点之一就是对接口(interface)的支持。接口是Golang中非常重要的概念,通过接口可以实现代码的抽象...
    99+
    2024-01-24
    多态性 动态类型 松耦合
  • 阿里云服务器的缺点与优缺点分析
    阿里云服务器是阿里云提供的一种高性能、高可用性的计算服务,为用户提供丰富的计算资源和灵活的计费方式。然而,任何产品都有其优点和缺点,那么阿里云服务器也不例外。本文将对阿里云服务器的缺点进行详细分析。 阿里云服务器的优点: 1. 高性能:阿里...
    99+
    2023-12-09
    阿里 优缺点 缺点
  • golang函数的优缺点分析
    go 语言函数具有可重用性、模块化、封装性、可靠性和高性能的优点。缺点包括调用栈深度、性能开销、命名空间污染和延迟绑定。为了优化具有递归性质的函数,可以使用备忘录技术来存储中间结果,从而...
    99+
    2024-04-20
    函数 golang 作用域 堆栈溢出 封装性
  • C++ 函数的优缺点分析
    优点:模块化代码,提高可读性代码复用,避免重复封装数据和实现细节提供命名空间,避免冲突传递参数,方便信息传递缺点:性能开销,调用涉及堆栈帧创建和销毁过度嵌套影响可读性调试难度增加,错误可...
    99+
    2024-04-12
    函数 c++ 优缺点 git 代码可读性
  • OSPF协议的优缺点分析
    OSPF(Open Shortest Path First)是一种用于路由选择的动态路由协议。它具有以下优点和缺点:优点:1. 高可...
    99+
    2023-09-22
    OSPF
  • 云服务器有哪些优点和缺点和缺点分析报告
    云服务器(Cloud Docker)是一种虚拟服务器,它可以通过互联网提供动态的资源,可以按需扩展和缩小服务器的规模,并与用户界面相集成。它的优点包括: 1.弹性扩展能力:通过云服务器,用户可以按需动态添加和缩小服务器规模,以满足业务需求...
    99+
    2023-10-26
    缺点 分析报告 优点
  • 云服务器有哪些优点与缺点和缺点分析报告
    云服务器(Cloud Drive)是一种基于云计算技术的服务器,它提供了一种灵活高效的计算平台,可以在公共云或私有云上部署。下面是云服务器的一些优点和缺点。 优点: 1. 灵活性:由于云服务器具有多个服务器节点,它可以在不同的位置使用不同...
    99+
    2023-10-26
    缺点 分析报告 优点
  • 阿里云服务器优点与缺点分析
    阿里云服务器优点和缺点: 优点: 1. 稳定性高:阿里云服务器的高可用性可以保证数据的一致性和稳定性。 2. 速度快:阿里云服务器采用多台服务器集群,可以快速响应大规模用户请求,大大提高服务器性能。 3. 价格实惠:阿里云服务器的配置、服...
    99+
    2023-10-26
    阿里 缺点 优点
  • 阿里云服务器优点和缺点分析
    阿里云服务器的优点包括以下几点: 高可靠性:阿里云服务器的硬件设备采用高可靠性的技术,如英特尔高性能服务器处理器等,这些硬件提供了强大的计算能力和安全保障。 高性能:阿里云服务器具有高性能的CPU、内存、磁盘等硬件资源,可以为用户提供高...
    99+
    2023-10-26
    阿里 缺点 优点
  • 分别分析gitlab方案的优缺点
    随着软件开发的不断发展,版本控制系统也变得越来越重要。Git已经成为大多数开发者首选的版本控制系统。在Git中,仓库是个显著的组成部分,通过仓库可以使开发者轻松地管理代码和版本,实现代码的协作开发和版本控制。Gitlab是基于Git的Web...
    99+
    2023-10-22
  • 云服务器的优缺点分析
    云服务器是一种虚拟化的计算基础设施,它通过网络将计算资源分配给用户,可以为用户提供弹性的计算资源使用方式。以下是云服务器的优缺点分析: 优点: 弹性:用户可以根据自己的需求随时扩展或缩减计算资源,无需关闭整个系统。 快速响应:由于采用了...
    99+
    2023-10-26
    优缺点 服务器
  • 阿里云服务器的优点和缺点分析
    阿里云服务器是一款由中国阿里巴巴集团旗下的云计算服务提供商阿里云开发的云服务器平台。以下是阿里云服务器的优点和缺点: 稳定性 阿里云服务器具有稳定性高、弹性扩展等特点,能够满足大规模应用和高并发访问的需求。在阿里云官网上,我们可以看到...
    99+
    2023-10-26
    阿里 缺点 优点
  • 云服务器有哪些优点和缺点和缺点分析报告总结
    云服务器是一种虚拟的、服务器软件,通常被用于在云端托管计算和存储。以下是云服务器的优点和缺点: 灵活性:由于云服务提供商通常会提供各种功能和服务,因此用户可以根据自己的需求选择和组合不同的云服务,以满足各种业务需求。 可扩展性:云计算可...
    99+
    2023-10-27
    缺点 分析报告 优点
  • golang是什么语言?优缺点分析
    近年来,Golang已成为程序员界的热门语言,它的高效性和简洁性备受程序员们的青睐。随着Golang的不断流行,也有人对Golang的发展前景充满期待,预测它未来的潜力不可限量。不过,在这崇尚快速迭代和不断尝试的开发环境中,Golang也有...
    99+
    2023-05-14
  • golang函数的优缺点综合分析
    go语言函数同时具备优点和缺点:优点:命名空间、可重用性、模块化、抽象、测试性。缺点:性能开销、调用堆栈、返回约定、缺乏泛型、闭包修改困难。 Go 语言函数:优缺点综合分析 在 Go ...
    99+
    2024-04-20
    函数 golang go语言
  • Discuz删除模块的优缺点分析
    Discuz删除模块的优缺点分析 Discuz是一款广泛应用于论坛建设的开源系统,用户可以根据自己的需求定制各种模块和功能。在使用Discuz建立论坛时,模块的添加和删除是非常常见的操...
    99+
    2024-03-09
    删除方式 模块删除分析 功能影响 系统稳定
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作