http://www.meetbse.com

                                                                  【大发11选5计划】php如何搭建微服务-PHP问题

                                                                  Hyperf (推荐学习:PHP视频教程)

                                                                  对于 Java 开发者来说,有技术相当成熟的微服务框架可供选择:

                                                                  [Dubbo](https://dubbo.apache.org/zh-cn/)[Spring Cloud](https://www.springcloud.cc/)

                                                                  作为一名 PHPer,我用 Google 查了一下「PHP + 微服务」,发现有用的相关内容少之又少 ,没有什么实质性的参考价值,无限惆怅。

                                                                  幸好,有大神在基于 Swoole 扩展的基础上,实现了高性能、高灵活性的 PHP 协程框架 [Hyperf](https://www.hyperf.io/) ,并提供了微服务架构的相关组件。

                                                                  Hyperf 是基于 `Swoole 4.3+` 实现的高性能、高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 `PHP-FPM` 的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,标准组件均基于 [PSR 标准](https://www.php-fig.org/psr) 实现,基于强大的依赖注入设计,保证了绝大部分组件或类都是 `可替换` 与 `可复用` 的。

                                                                  于是,我在学习了微服务架构相关的基础知识之后,使用 Hyperf 框架构建了一个基于 PHP 的微服务集群,这是项目源码地址:

                                                                  https://github.com/Jochen-z/php-microservice-d(emo

                                                                  该项目使用 Dokcer 搭建,`docker-compose.yml` 代码如下:

                                                                  version:"3"services:consul-server- leader:image:consul:latestcontainer_name:consul-server-leadercommand:"agent -server -bootstrap -ui -node=consul-server-leader -client=0.0.0.0"environment:- CONSUL_BIND_INTERFACE=eth 0ports:- "8500:8500"networks:- micr]oservicemicroservice- 1:build:context:.container_name:"microservice-1"command:"php bin/hyperf.php start"depends_on:- "consul-server-leader"volumes:- ./www/microservice- 1:/var/wwwnetworks:- microservicetty:truemicroservice- 2:build:context:.container_name:"microservice-2"command:"php bin/hyperf.php start"depends_on:- "consu)l-server-leader"volumes:- ./www/microservice- 2:/var/wwwnetworks:- microservicetty:trueapp:build:context:.container_name:"app"command:"php bin/hyperf.php start"depends_on:- "microservice-1"volumes:- ./www/ web:/var/wwwports:- "9501:9501"networks:- microservicetty:truenetworks:microservice:driver:bridgevolumes:microservice:driver:local

                                                                  这里启动了一个 Consul 容器 `consul-server-leader` 作为服务注册和服务发现的组件,容器 `microservice-1` 和 `microservice-2` 分别提供了加法运算和除法运算的服务。

                                                                  容器 `app` 作为服务调用方,配置了 `consul-server-leader` 容器的 URL,通过访问 `consul-server-leader` [获取 `microservice-1` 和 `microservice-2` 服务的 IP 地址和端口,然后 `app` 通过 RPC 协议调用加法运算和除法运算的服务获取结果并返回给用户。

                                                                  郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

                                                                  上一篇:PHP Composer 设置 HTTP 代理-composer
                                                                  下一篇:没有了