首页 > 后端开发 > 正文

php微服务框架 PHP有什么好的方式实现微服务架构?

2023-08-24 20:29:13 | 我爱编程网

php微服务框架 PHP有什么好的方式实现微服务架构?很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

php微服务框架 PHP有什么好的方式实现微服务架构?

php如何搭建微服务



Hyperf (推荐学习:PHP视频教程)
对于 Java 开发者来说,有技术相当成熟的微服务框架可供选择:
[Dubbo](
[Spring Cloud]( PHPer,我用 Google 查了一下「PHP + 微服务」,发现有用的相关内容少之又少 ,没有什么实质性的参考价值,无限惆怅。
幸好,有大神在基于 Swoole 扩展的基础上,实现了高性能、高灵活性的 PHP 协程框架 [Hyperf]( ,并提供了微服务架构的相关组件。
Hyperf 是基于 `Swoole 4.3+` 实现的高性能、高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 `PHP-FPM` 的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,标准组件均基于 [PSR 标准]( 实现,基于强大的依赖注入设计,保证了绝大部分组件或类都是 `可替换` 与 `可复用` 的。
于是,我在学习了微服务架构相关的基础知识之后,使用 Hyperf 框架构建了一个基于 PHP 的微服务集群,这是项目源码地址:
Dokcer 搭建,`docker-compose.yml` 代码如下:
version:"3"
services:
consul-server- leader:
image:consul:latest
container_name:consul-server-leader
command:"agent -server -bootstrap -ui -node=consul-server-leader -client=0.0.0.0"
environment:
- CONSUL_BIND_INTERFACE=eth 0
ports:
- "8500:8500"
networks:
- microservice
microservice- 1:
build:
context:.
container_name:"microservice-1"
command:"php bin/hyperf.php start"
depends_on:
- "consul-server-leader"
volumes:
- ./www/microservice- 1:/var/www
networks:
- microservice
tty:true
microservice- 2:
build:
context:.
container_name:"microservice-2"
command:"php bin/hyperf.php start"
depends_on:
- "consul-server-leader"
volumes:
- ./www/microservice- 2:/var/www
networks:
- microservice
tty:true
app:
build:
context:.
container_name:"app"
command:"php bin/hyperf.php start"
depends_on:
- "microservice-1"
volumes:
- ./www/ web:/var/www
ports:
- "9501:9501"
networks:
- microservice
tty:true
networks:
microservice:
driver:bridge
volumes:
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 协议调用加法运算和除法运算的服务获取结果并返回给用户。
`app` 容器为 Web 应用,部署了一个 Hyperf 项目并对外提供 HTTP 服务。
例如,在 `AppControllerIndexController` 控制器里有 `add` 方法:
publicfunctionadd(AdditionService $addition)
{
$a = (int) $this->request->input( 'a', 1); # 接受前端用户参数
$b = (int) $this->request->input( 'b', 2);
return[
'a'=> $a,
'b'=> $b,
'add'=> $addition->add($a, $b) # RPC调用
];
}
在 `AppJsonRpcAdditionService` 中 `add` 的实现:
classAdditionServiceextendsAbstractServiceClient
{
/**
* 定义对应服务提供者的服务名称
* @varstring
*/
protected$serviceName = 'AdditionService';
/**
* 定义对应服务提供者的服务协议
* @varstring
*/
protected$protocol = 'jsonrpc-http';
publicfunctionadd(int $a, int $b): int
{
return$this->__request( __FUNCTION__, compact( 'a', 'b'));
}
}继承了 `AbstractServiceClient` 即可创建一个微服务客户端请求类,Hyperf 在底层帮我们实现了与 Consul 和服务提供者交互的细节,我们只要 `AdditionService` 类里的 `add` 方法即可远程调用 `microservice-1` 和 `microservice-2` 提供的服务。
至此,PHP 微服务集群搭建就完成了!

php微服务框架 PHP有什么好的方式实现微服务架构?

swoole哪个框架用的多



Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。 (推荐学习: swoole视频教程)
有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。
Swoft 通过长达三年的积累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性能框架和微服务治理的最佳选择。
内置高性能网络服务器(Http/Websocket/RPC/TCP)
灵活的组件功能
强大的注解功能
多样化的命令终端(控制台)
强大的面向切面编程(AOP)
容器管理,依赖注入(DI)
灵活的事件机制
基于PSR-7的HTTP消息的实现
基于PSR-14的事件管理
基于PSR-15的中间件
国际化(i18n)支持
简单有效的参数验证器
高性能连接池(Mysql/Redis/RPC),自动重新连接
数据库高度兼容Laravel的使用方式
Redis高度兼容Laravel的使用方式
秒级定时任务
进程池
高效的任务处理
灵活的异常处理
强大的日志系统
服务注册与发现
配置中心
服务限流
服务降级
服务熔断
Apollo
Consul

php微服务框架 PHP有什么好的方式实现微服务架构?

PHP有什么好的方式实现微服务架构?

在过去的那些年PHP想要实现微服务这个概念也是比较难的,因为PHP没有这方面的优势

我们可以基于一些扩展来实现PHP微服务、比如腾讯高性能RPC开发框架Tars实现服务治理(微服务)

用TARS-PHP进行服务治理以SWOOLE+PHP7+TARS架构在阅文集团技术上带来了开发、运维、性能的全面提升。

还有一个就是Swoft,Swoft是基于swoole协程的高性能PHP微服务框架;常驻内存协程、学习曲线平滑、国内框架文档通俗易懂、加上开箱即用的RPC也可以实现PHP微服务

以上技术都是PHPer在进阶中高级、架构师的过程中必不可少的技术。

我爱编程网

以上就是我爱编程网为大家带来的php微服务框架 PHP有什么好的方式实现微服务架构?,希望能帮助到大家!
与“php微服务框架 PHP有什么好的方式实现微服务架构?”相关推荐
php微服务框架实现 php如何搭建微服务
php微服务框架实现 php如何搭建微服务

php有没有其他好用的微服务框架?微服务这个技术在这几年很火啊,用人话说:微服务架构是一项在云中部署应用和服务的新技术。PHP微服务框架也是这几年才发展起来,大部分PHPer应该还没有接触过PHP有这个腾讯高性能RPC开发框架Tars实现服务治理(微服务),是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。目前该框架在腾讯内

2023-09-21 09:49:56
php微服务框架pdf 微服务架构图
php微服务框架pdf 微服务架构图

求《PHP高级程序设计模式框架与测试》全文免费下载百度网盘资源,谢谢~《PHP高级程序设计模式框架与测试》百度网盘pdf最新全集下载:链接:?pwd=uthw提取码:uthw简介:PHP高级程序设计:模式、框架与测试详细讲解了对他们为重要的主题:高级面向对象、设计模式、文档、测试和标准PHP库等内容。同时,为适应目前Web开发的新趋势,作者还全面探讨了MVC架构和ZendFra

2023-09-23 10:20:57
php微服务框架阿里 微服务架构图
php微服务框架阿里 微服务架构图

为什么Laravel会成为最成功的PHP框架Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel。本文我们将讨论为什么Laravel会成为最成功的PHP框架。模块化和可扩展性Laravel注重代码的模块化和可扩展性。你可以在包含超过5500个程序包的Packalyst目录中找到你想要添加的任何文件。Lar

2023-09-21 15:14:58
php微服务框架PHP php有没有其他好用的微服务框架?
php微服务框架PHP php有没有其他好用的微服务框架?

php有没有其他好用的微服务框架?微服务这个技术在这几年很火啊,用人话说:微服务架构是一项在云中部署应用和服务的新技术。PHP微服务框架也是这几年才发展起来,大部分PHPer应该还没有接触过PHP有这个腾讯高性能RPC开发框架Tars实现服务治理(微服务),是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。目前该框架在腾讯内

2023-08-30 15:48:28
php微服务框架slim php有没有其他好用的微服务框架?
php微服务框架slim php有没有其他好用的微服务框架?

php有没有其他好用的微服务框架?微服务这个技术在这几年很火啊,用人话说:微服务架构是一项在云中部署应用和服务的新技术。PHP微服务框架也是这几年才发展起来,大部分PHPer应该还没有接触过PHP有这个腾讯高性能RPC开发框架Tars实现服务治理(微服务),是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。目前该框架在腾讯内

2023-09-20 02:50:21
php微服务框架swoft php有没有其他好用的微服务框架?
php微服务框架swoft php有没有其他好用的微服务框架?

php有没有其他好用的微服务框架?微服务这个技术在这几年很火啊,用人话说:微服务架构是一项在云中部署应用和服务的新技术。PHP微服务框架也是这几年才发展起来,大部分PHPer应该还没有接触过PHP有这个腾讯高性能RPC开发框架Tars实现服务治理(微服务),是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。目前该框架在腾讯内

2023-09-22 05:22:05
php微服务框架pdf php有没有其他好用的微服务框架?
php微服务框架pdf php有没有其他好用的微服务框架?

php有没有其他好用的微服务框架?微服务这个技术在这几年很火啊,用人话说:微服务架构是一项在云中部署应用和服务的新技术。PHP微服务框架也是这几年才发展起来,大部分PHPer应该还没有接触过PHP有这个腾讯高性能RPC开发框架Tars实现服务治理(微服务),是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。目前该框架在腾讯内

2023-09-23 10:20:25
php微服务网关用什么框架 php有没有其他好用的微服务框架?
php微服务网关用什么框架 php有没有其他好用的微服务框架?

php现在比较热门实用的框架有哪些?PHP作为强大的Web开发语言,上手非常容易,开发效率很高,不需要像Java一样进行编译后才能执行,但是如果用原生的PHP来开发还是会存在开发速度慢,或者说后期维护难度大,缺乏代码严谨性等问题,我就需要使用目前流行的MVC框架,那么现在有哪些PHP框架更方便,更快捷呢?1.Laravellaravel可以说是从去年到今年都是最热门的PHP框架

2023-10-07 06:47:03