分类:精选文章
-
golang的两把利器,协程和管道
协程非常容易引发并发问题 我们先看下列程序 func main() { res := make(map[int]int) for i := 0; i < 100; i++ {…
-
Gin源码分析 – Context功能概述
1 介绍 从前面的介绍可以了解到整个Gin由Engine、Route、Context等几个主要组成。Context是Gin框架中非常重要的一点,它允许我们在中间件间共享变量,管理整…
-
Gin源码分析 – Engine结构体
Engine源码结构体 当我们在使用Gin框架来创建一个HTTP服务时,首先我们需要初始化一个实例,在Engine结构体中就包含了实例的一些基本属性和实例化的一些方法。 Engin…
-
Gin源码分析 – net/http的大概流程
1 gin框架预览 上图大概是gin里面比较重要的模块. 从gin的官方第一个demo入手. package main import “github.com/gin-gonic/g…
-
Gin源码分析 – HttpRouter路由原理
1、Trie树和Radix树的区别 1.1 Trie树(前缀树、字典树) Trie树特点 根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的…
-
轻松搞懂php7垃圾回收机制
垃圾回收 简称GC。顾名思义,就是废物重利用的意思。说垃圾回收机制之前,先接触一下内存泄漏。 内存泄漏 某大神重口味充满画面感的形象解释: 大概意思就是申请了一块地儿拉了会儿屎,拉…
-
细谈八种架构设计模式及其优缺点概述
什么是架构 我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是骨架。 人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮…
-
PHP 设计模式
设计模式的目的 重用性:相同功能的代码,不用多次编写 可读性:编程规范性, 便于其他程序员的阅读和理解 可扩展性:当需要增加新的功能时,非常的方便,称为可维护 可靠性:当我们增加新…
-
面向过程和面向对象
面向过程(Procedure Oriented 简称PO :像C语言) 看名字它是注重过程的。当解决一个问题的时候,面向过程会把事情拆分成: 一个个函数和数据(用于方法的参数) 。…
-
php-fpm 讲解
一、介绍:PHP-FPM 即 PHP FastCGI 进程管理器FastCGI 顾名思义,是 CGI 的升级版本,为了提升 CGI 的性能而生。 CGI 针对每个 HTTP 请求都…
-
Swoole 协程的原理
什么是进程? 进程就是应用程序的启动实例。独立的文件资源,数据资源,内存空间。 什么是线程? 线程属于进程,是程序的执行者。一个进程至少包含一个主线程,也可以有更多的子线程。线程有…
-
swoole实际开发注意问题
全局变量的使用 全局变量初始化 假如,第一次请求进来对全局变量 global $a =1 进行操作值从 1 变为 2 ,如果进行还原或者销毁,第二次请求进来,global $a 还…
-
Swoole 的底层架构及原理特性
Swoole底层架构 Swoole 主要包含以下组件: Master:当我们运行启动 Swoole 的 PHP 脚本时,首先会创建该进程(它是整个应用的 root 进程),然后由该…
-
基于MySql、Redis、Mq、ES的高可用方案解析
前言 高可用对于当下的系统而言,可以说是一个硬指标,常年专注于业务开发的我们,对于高可用最直观的感觉可能就是祈祷应用不要出问题,不要报错;即便有问题,也最好不是我们的业务代码逻辑导…
-
从底层原理分析Nginx为什么这么快
Nginx 的进程模型 Nginx 服务器,正常运行过程中: 多进程:一个 Master 进程、多个 Worker 进程 Master 进程:管理 Worker 进程 对外接口:接…
-
MySQL面试通关秘籍:这次你也可以在简历写上精通MySQL
一、好戏开场:MySQL底层架构与库表设计 面试官:先跟我说说你理解中的MySQL底层架构 我个人理解中的MySQL整体架构,自顶向下分为连接层、服务层、引擎层以及文件层,其作用如…
-
MySQL 日志文件:redo log、undo log、binlog
在MySQL服务器运行过程中,除了会产生各种数据文件外,还会记录各种日志文件,这些日志文件不仅仅记录MySQL的数据库的运行情况、用户操作、错误信息等,还和MySQL服务器的数据息…
-
MySQL 整体架构:连接器、缓存、分析器、优化器、执行器、存储引擎
很多开发同学对SQL优化如数家珍,却对MySQL架构一知半解。岂不是只见树叶,不见森林,终将陷入细节中不能自拔。 今天就一块学习MySQL分层架构,深入了解MySQL底层实现原理,…
-
从根源聊:16招搞定高并发架构设计
本文所说的高并发架构设计是指设计一套比较合适的架构来应对请求、并发量很大的系统,使系统的稳定性、响应时间符合预期并且能在极端的情况下自动调整为相对合理的服务水平。 一般而言我们很难…
-
高并发系统限流:漏桶算法和令牌桶算法
一、什么是限流?为什么要限流? 不知道大家有没有做过帝都的地铁,就是进地铁站都要排队的那种,为什么要这样摆长龙转圈圈?答案就是为了限流!因为一趟地铁的运力是有限的,一下挤进去太多人…