第二章 swoft 快速入门
1、了解swoft
首个基于 Swoole 原生协程的新时代 PHP 高性能协程框架 ,内置协程网络服务器及常用的协程客户端,常驻内存 ,不依赖传统的 PHP-FPM ,全异步非阻塞 IO实现 ,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的 yield, 有类似 Go 语言的协程、灵活的注解、强大的全局依赖注入容 器、灵活强大的 AOP、标准的 PSR 规范实现等等,可以用于构建高性能的Web系统、API、中间件、基础服务等等。
1.1、与传统框架的区别
cgi
对每个用户请求都要开单独的子进程去维护,所以数量多的时候会出现性能问题
fastcgi
激活后,不会每次都花费时间去解析php.ini、重新载入全部dll扩展并重新初始化全部数据结构
swoole
通过swoole开启一个web服务运行laravel框架,通过访问swoole的时候laravel则已经在swoole中作为常驻内存 保存了
2、数据库连接池的概念
假设网站一天有很大的访问量,数据库服务器就需要为每次连接创建一次数据库连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出,对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的,数据库的连接池负责分配,管理和释放数据库连接。
2.1、数据库连接池的基本工作原理:
连接池初始化
在应用程序启动时,连接池会初始化一定数量的数据库连接,并将它们存储在连接池中。
连接获取
当应用程序需要访问数据库时,它会从连接池中获取一个可用的数据库连接。如果连接池中没有空闲连接,连接池会根据配置参数决定是等待可用连接还是创建新的连接。
连接复用
应用程序使用完数据库连接后,将连接归还给连接池而不是关闭它。连接池会将归还的连接标记为空闲状态,以供其他请求复用。
连接池管理
连接池会定期检查 连接的健康状况,并根据需要创建新的连接或关闭空闲时间过长的连接。这样可以确保连接池中的连接始终保持在适当的数量,并且是可用的状态。
2.2、数据库连接池的好处包括:
提高性能
通过复用连接,避免了频繁创建和销毁连接的开销,减少了数据库访问的延迟。
提高并发性
连接池可以管理和调度连接的分配,使多个请求可以并行处理,提高系统的并发性能。
资源控制
连接池可以限制连接的数量,避免过多的连接对数据库服务器造成负担。
连接的可管理性
连接池可以监控和管理连接的状态和健康状况,提供可靠的连接管理和故障恢复。
2.3、使用数据库连接池时需要注意以下几点:
连接泄漏
确保在应用程序使用完连接后,及时将连接归还给连接池,避免连接泄漏导致连接池资源耗尽。
最大连接数配置
根据应用程序的并发需求和数据库服务器的性能,合理设置连接池的最大连接数,以避免过多连接导致性能下降或服务器负载过高。
连接超时配置
合理设置连接的最大空闲时间和最大生存时间,避免连接在空闲或超过一定时间后失效。
3、什么是RPC
RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前分布式系统 架构 , 微服务 中不同的系统之间的远程通信和相互调用的重要的环节。
客户端通过发送一个规定的rpc协议,请求服务的注册中心,由服务注册中心检索可用服务 ,并且实现调用转发 ,服务内容由代码服务器在启动的时候,注册到服 务中心。服务中心暂时利用redis存储内容。
3.1、RPC与restful区别
RPC的特点:
在于它可以在两个服务之间进行相关协议的通信,常以tcp 为主;而两个服务之间分别会以client与server交互信息,最重要的特点是对内;
restful的特点:
对外,对外提供给对方所需的服务
