公司倒退到肯定阶段,后期疾速迭代的老业务代码,已无奈撑持扩大需要,线上宕机事变频发。
于是,把公司倒退两年多的新业务线,跟老业务线合并,都是主营业务,只是之前争取转型,然而保护老本太大。又加上之前新业务一开始用 php 开发的,起初转 java 语言,再次拖慢了新业务倒退。
交融为一个平台,天然想把人员和零碎稳定性做一下衡量,最初因为一个老业务宕机事变,选定了应用微服务架构。
微服务:
依据 Robert C. Martin 的一个对 繁多职责准则 (Single Responsibility Principle) 的阐述:“把因为雷同起因而变动的货色聚合到一起,把因为不同起因而变动的货色拆散开来。”该阐述很好地强调了内聚性这一概念。没有银弹 No Silver Bullet
尽管 微服务架构 (Microservice) 益处泛滥,但 微服务不是银弹!!!,您须要面对所有分布式系统都须要面对的复杂性,你可能须要在部署、测试和监控上做很多的工作,在服务间调用、服务的可靠性上做很多工作,甚至您还须要解决相似于 分布式事务 或者与 CAP 相干的问题。只管 Hyperf 曾经为您解决了许多的问题,但在施行 微服务架构(Microservice) 之前您的团队必须储备足够的分布式系统相干的常识体系,以面对很多您在 单体架构(Monolithic architecture) 下可能没有面临过甚至没有思考过的问题。
微服务
咱们的故事,就从这里开始了~
hyperf
一个高性能、高灵活性的渐进式 PHP 协程框架,内置协程服务器及大量罕用的组件。。。
本地装置运行环境
windows7 专属下载地址 window10+ 都能够间接去官网下载 mac 也能够依据版本去官网下载。
-
装置 docker
- 下载 docker:这里以 win7 为例,点击下载 DockerToolbox-18.03.0-ce.exe
- 启动:Docker Quickstart Terminal
- 过程须要下载:boot2docker.iso,如果比较慢,你能够用 github 减速助力一把,放在本地窗口中提醒的门路下,如我本地:C:\Users\Administrator.docker\machine\cache
- 启动胜利
-
拉取镜像(非必须)
- 上一步启动胜利,就能够开心的应用了。
docker pull hyperf/hyperf
- 下载实现后
- hyperf/hyperf-docker 我的项目内曾经为您筹备好了各种版本的 Dockerfile,或间接基于曾经构建好的 hyperf/hyperf 镜像来运行。
-
启动服务(本地开发)
- 本地共享目录默认 /d/Users,须要放到我这里的 /d/tools,须要操作虚拟机共享目录
- 拉取框架示例模板(这个命令不能复制到 Docker Quickstart Terminal?):
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
-
拉取模板
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
- 映射一下端口:
- 再拜访一下本地浏览器:
IDE 编辑器
因为目前业界做的比拟好的是 PHPstorm,然而国内破解学习泛滥,不再赘述