在传统的web开发模式中,我们知道,每一次php请求,都要经过php文件从磁盘上读取、初始化、词法解析、语法解析、编译等过程,而且还要与nginx或者apache通信,如果再涉及数据库的交互,还要再算上数据库的握手、验权、关闭等操作,可见一次请求的背后其实是有相当繁琐的过程,无疑,这个过程也就带来了相当多的开销!当然,所有的这些资源和内存,在一次请求结束之前,都会得到释放。但是,swoole是常驻            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-21 14:29:59
                            
                                23阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在我看来,swoole的优点是性能高,可定制性强,应用场景广(支持http服务,socket服务,或者自己手撸个tcp服务)。但对于日常使用TP或laravel这类框架的开发者来说说,使用原生的swoole框架来做开发并不是很方便,于是产生了很多以swoole为核心的swoole框架,如easyswoole,Swoft ,SwooleDistributed 等,具体介绍可以看swoole的衍生开源            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-03 15:21:19
                            
                                81阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            //获取全局的Request/Response对象 $request = Context::mustGet()->getRequest(); $response = Context::mustGet()->getResponse(); //设置返回格式 默认 UTF-8 $response->wit ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-23 22:24:00
                            
                                70阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            PHP在微服务这块跟java与go还是有一定距离的,不管是社区氛围、第三方开源库都有些距离.1. 四个基础的部分:①. 注册与发现
②. 服务熔断
③. 服务限流
④. 配置中心2. 服务注册与发现:微服务中,有订单服务、商品服务、用户服务...,由于压力不同,数据量也不同,很可能是分开部署的.(1). 为什么要服务注册?①. 调用端不可能是写死服务1的ip地址.
②. 原因:
   一旦这台服务            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-02-15 16:21:21
                            
                                22阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、环境安装:1. dockerFile参考:https://hub.docker.com/r/swoft/swoft
https://hub.docker.com/r/swoft/alphp2. docker启动swoft镜像:①. docker拉取swoft镜像(里面包含了swoft代码):
   docker pull swoft/swoft:latest
   docker images            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-23 12:03:54
                            
                                74阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 启动:①. 启动swoft:
   php bin/swoft http:start
②. 查看进程:
   ps -ef
   UID   PID  PPID  C  STIME  TTY          TIME CMD
   root  1     0    7  20:18  ?   00:00:01 swoft-http master process(/var/www/swoft            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-26 10:53:39
                            
                                123阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 服务发现:上面服务注册好后,为了演示,服务自己发现自己(即自已调用自己).(1). 获取所有服务列表:
app\Http\MyClient.php:namespace App\Http;
use Swoft\Bean\Annotation\Mapping\Inject;
use Swoft\Consul\Agent;
use Swoft\Http\Server\Annotation\Mapp            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-02-15 16:18:23
                            
                                26阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            启动命令 php bin/swoft http:start 或者 swoftctl run -c http:start 1 入口文件 bin/swoft.php #!/usr/bin/env php <?php // Bootstrap require_once __DIR__ . '/bootst            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-07-19 11:15:00
                            
                                145阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            1. 注册服务:app\Consul\RegisterServiceListener.php:namespace App\Consul;
use Swoft\Bean\Annotation\Mapping\Inject;
use Swoft\Consul\Agent;
use Swoft\Event\Annotation\Mapping\Listener;
use Swoft\Event\Even            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-02-15 16:20:28
                            
                                27阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Docker 以下纯属个人理解: Docker就是一种虚拟机,将环境打包成镜像,等于做了一个Linux系统裁剪。 镜像就是我们安装系统的镜像,里面包含了你的代码和环境。 容器就是一个虚拟机,你可以用一个镜像创建多个容器,等于就是安装了多个虚拟机。 然后用docker exec就可以进入容器执行命令,            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-10-15 14:01:34
                            
                                285阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            传统架构 PHP-FPM + Nginx 传统架构中所使用的Nginx + PHP-FPM的模型中,Nginx由于基于Linux的epoll事件模型一个工作进程worker会同时去处理多个请求,但是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-07-14 18:04:00
                            
                                212阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            概述性能优化是个涉及面非常广的问题,不同的环境,不同的业务场景可能会存在不同的优化方案,本文只对一些相关的知识点做简单的总结,具体方案可以根据场景自行尝试。配置文件调优通过elasticsearch.yml配置文件调优内存锁定允许 JVM 锁住内存,禁止操作系统交换出去由于JVM发生swap交换会导致极大降低ES的性能,为了防止ES发生内存交换,我们可以通过锁定内存来实现,这将极大提高查询性能,但            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-24 14:43:05
                            
                                183阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录一、内存设置的概述二、Elasticsearch堆内存的分配的两个原则 一、内存设置的概述ES 默认安装后设置的内存是 1GB,如果是通过解压安装的 ES,则在 ES 安装文件中包含一个 jvm.option 文件,Xms 表示堆的初始大小,Xmx 表示可分配的最大内存,都是 1GB。确保 Xmx 和 Xms 的大小是相同的,其目的是为了能够在 Java 垃圾回收机制清理完堆区后不需要重新分            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-18 19:37:10
                            
                                157阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录内存设置总结 内存设置ES 默认安装后设置的内存是 1GB,对于任何一个现实业务来说,这个设置都太小了。如果是通过解压安装的 ES,则在 ES 安装文件中包含一个 jvm.option 文件,添加如下命令来设置 ES 的堆大小, Xms 表示堆的初始大小, Xmx 表示可分配的最大内存,都是 1GB。  确保 Xmx 和 Xms 的大小是相同的,其目的是为了能够在 Java 垃圾回收机制            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-22 10:20:58
                            
                                98阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            可以借助Swoft下的Bean类操作容器 示例: 将类绑定至容器 use Swoft\Bean\Annotation\Bean; /** * @Bean("imageLogic") */ class ImageLogic extends BaseLogic { /** * 根据id获取图片 * @p            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-07-19 10:53:00
                            
                                172阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            官网: https://www.swoft.org/ 源码解读: http://naotu.baidu.com/file/814e81c9781b733e04218ac7a0494e2a?token=f009094c71a791c5 号外号外, 欢迎大家 star, 我们开发组定了一个 star 1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-10-06 18:59:33
                            
                                99阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             内存使用和GC指标在运行Elasticsearch时,内存是您要密切监控的关键资源之一。 Elasticsearch和Lucene以两种方式利用节点上的所有可用RAM:JVM heap和文件系统缓存。 Elasticsearch运行在Java虚拟机(JVM)中,这意味着JVM垃圾回收的持续时间和频率将成为其他重要的监控领域。JVM heap: A Goldilocks tale&nbs            
                
         
            
            
            
            我们在OpenGL中大量使用缓冲来储存数据已经有很长时间了。操作缓冲其实还有更有意思的方式,而且使用纹理将大量数据传入着色器也有更有趣的方法。这一节中,我们将讨论一些更有意思的缓冲函数,以及我们该如何使用纹理对象来储存大量的数据(纹理的部分还没有完成)。OpenGL中的缓冲只是一个管理特定内存块的对象,没有其它更多的功能了。在我们将它绑定到一个缓冲目标(Buffer Target)时,我们才赋予了            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-06 10:28:07
                            
                                61阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            官网文档 https://www.swoft.org/documents/v2/basic-components/aop/ 视频教程 https://www.bilibili.com/video/BV12J411j721?p=51 切面 我理解 就是不破坏原有代码逻辑,往里面加入需要执行的前置 后置            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-07-18 19:55:00
                            
                                320阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            2. Swoft-cli使用、修改代码自动重启服务:宿主机代码改动,重启容器可以解决,但是麻烦.swoft 1.x修改代码会有reload重新加载机制,内置了一个不断死循环的监听文件md5值是否发生改变.如果改变,就会改变worker进程.swoft 2.x把监控文件变动并重启服务的代码专门做成一个客户端工具Swoft-cli.   注:生产环境是不需要的,只有在开发中使用.            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-27 09:45:12
                            
                                85阅读