开始Hpyerf编写bug~

公司发展到一定阶段,前期快速迭代的老业务代码,已无法支撑扩展需求,线上宕机事故频发。

于是,把公司发展两年多的新业务线,跟老业务线合并,都是主营业务,只是之前争取转型,但是维护成本太大。又加上之前新业务一开始用php开发的,后来转java语言,再次拖慢了新业务发展。

融合为一个平台,自然想把人员和系统稳定性做一下权衡,最后因为一个老业务宕机事故,选定了使用微服务架构。

微服务:
根据 Robert C. Martin 的一个对 单一职责原则 (Single Responsibility Principle) 的论述:“把因为相同原因而变化的东西聚合到一起,把因为不同原因而变化的东西分离开来。” 该论述很好地强调了内聚性这一概念。

没有银弹 No Silver Bullet
虽然 微服务架构(Microservice) 好处众多,但 微服务不是银弹 !!! ,您需要面对所有分布式系统都需要面对的复杂性,你可能需要在部署、测试和监控上做很多的工作,在服务间调用、服务的可靠性上做很多工作,甚至您还需要处理类似于 分布式事务 或者与 CAP 相关的问题。尽管 Hyperf 已经为您解决了许多的问题,但在实施 微服务架构(Microservice) 之前您的团队必须储备足够的分布式系统相关的知识体系,以面对很多您在 单体架构(Monolithic architecture) 下可能没有面临过甚至没有考虑过的问题。

微服务

我们的故事,就从这里开始了~

hyperf

一个高性能、高灵活性的渐进式 PHP 协程框架,内置协程服务器及大量常用的组件。。。

本地安装运行环境

windows7 专属下载地址 window10+ 都可以直接去官网下载 mac也可以根据版本去官网下载。
  • 安装docker

  • 拉取镜像(非必须)

    • 上一步启动成功,就可以开心的使用了。
    • docker pull hyperf/hyperf
    • 下载完成后开始Hpyerf编写bug~_第3张图片
    • hyperf/hyperf-docker 项目内已经为您准备好了各种版本的 Dockerfile ,或直接基于已经构建好的 hyperf/hyperf 镜像来运行。
  • 启动服务(本地开发)

    • virtualBox跟本地d:\hypef共享目录绑定,需要操作新增虚拟机共享目录hyperf开始Hpyerf编写bug~_第4张图片
    • 拉取框架示例模板(这个命令不能复制到Docker Quickstart Terminal? 需要virtualBox增强功能?):
    docker run --name hyperf \
    -v /d/tools/hyperf:/data/project \
    -p 9501:9501 -it \
    --privileged -u root \
    --entrypoint /bin/sh \
    hyperf/hyperf:7.4-alpine-v3.11-swoole
    • 三个地址解释一下:

      • d:\hypef win7 本地D盘目录
      • /d/tools/hyperf virtualBox虚拟机内部目录
      • /data/project docker容器内部代码所在目录
      • 我们要做的事情,docker容器绑定virtualBox,virtualBox再绑定本地共享目录。
      • 本地共享目录名“hyperf”映射虚拟机已跟docker绑定的地址:
      • sudo mount -t vboxsf hyperf /d/hyperf 暂无实现
    • 拉取模板

      • composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
      • cd /data/project
      • composer create-project hyperf/hyperf-skeleton
      • 选择依赖可以都选n,这样防止一开始项目缺少启动不了。
    • 启动项目

      • cd hyperf-skeleton
      • php bin/hyperf.php start
    • 映射一下端口:开始Hpyerf编写bug~_第5张图片
    • 再访问一下本地浏览器:开始Hpyerf编写bug~_第6张图片

IDE编辑器

因为目前业界做的比较好的是PHPstorm,但是国内破解学习众多,不再赘述

老规矩:Hello World

你可能感兴趣的:(phphyperf编程)