PHP开发知识结构
  • README
  • Architecture
    • 架构基础
      • 参考资料
      • [分布式架构 Broker](Architecture/架构基础/分布式架构 Broker.md)
      • 高可用
      • 高性能
      • 架构设计原则
      • 架构原则
      • 可扩展
      • 模块化
      • 业务架构
    • 建模
      • PERM
    • 网关
      • 微服务与API网关
    • DDD
      • 1.基础
      • 参考资料
    • JOB
      • 设计
    • MQ
      • Kafka
        • 常见问题
        • 架构
        • kafka介绍
      • Notes
        • RabbitMQ和Kafka的比较
      • Rabbit Mq
        • Notes
          • 常见问题
          • 存储机制
          • 错误问题处理
          • 消息持久化
          • 消息确认机制
        • [1. RabbitMq的基础](Architecture/MQ/RabbitMq/1. RabbitMq的基础.md)
        • [2. RabbitMq的概念](Architecture/MQ/RabbitMq/2. RabbitMq的概念.md)
        • [x1. RabbitMQ与Redis队列对比](Architecture/MQ/RabbitMq/x1. RabbitMQ与Redis队列对比.md)
      • 消息队列
  • Base
    • 架构
      • 1.如何保证缓存与数据双写一致性
    • 文件系统
      • 文件系统原理
    • 性能
      • 1.缓存
    • 异步编程
      • 基于任务的异步编程
    • Networks
      • 常见问题
        • 跨域
        • 三次握手和四次分手
        • RPC和REST
        • RPC框架
      • 进程和线程
        • 多线程和多线程
        • 进程、线程、协程
        • 进程间通信方式有哪些
        • 进程切换
        • [通道 Chan](Base/Networks/进程和线程/通道 Chan.md)
        • 同步异步、阻塞非阻塞
        • 协程
      • 执行体
        • 协同
      • HTTP
        • [1. 互联网协议入门](Base/Networks/HTTP/1. 互联网协议入门.md)
        • [2. HTTP协议入门](Base/Networks/HTTP/2. HTTP协议入门.md)
        • [3. HTTP报文内的HTTP信息](Base/Networks/HTTP/3. HTTP报文内的HTTP信息.md)
        • [4. HTTP状态码](Base/Networks/HTTP/4. HTTP状态码.md)
        • [6. HTTPS](Base/Networks/HTTP/6. HTTPS.md)
        • [7. 用户身份的认证](Base/Networks/HTTP/7. 用户身份的认证.md)
        • Untitled
      • IO编程
        • IO
        • IO定义
        • IO模型
      • Notes
        • 多进程共用数据库连接问题
    • OOAD
      • 面向对象
        • 抽象类和接口
        • 对象
        • 多态
        • 封装
        • 克隆
        • 控制反转
        • 类的变量
        • 依赖注入
        • MVC
        • ORM
  • Business
    • 权限
      • Casbin
    • 注册登录
      • 单点登录
    • 1.服务端接口版本问题
    • 2.一致性问题
    • [3.if else 太多](Business/3.if else 太多.md)
    • 4.如何做监控统计
    • 5.规则引擎
    • 6.滑块验证码
    • 7.大规模上报一致性问题
    • 8.状态机
  • Cloud
    • 云存储
    • Docker
      • 常见问题
        • [Certificate Signed By Unknown Authority](Cloud/Docker/常见问题/certificate signed by unknown authority.
        • [No Route To Host](Cloud/Docker/常见问题/no route to host.md)
      • [0. 简介](Cloud/Docker/0. 简介.md)
      • [1. 安装](Cloud/Docker/1. 安装.md)
      • [2. 基本概念](Cloud/Docker/2. 基本概念.md)
      • [3. 镜像操作](Cloud/Docker/3. 镜像操作.md)
      • [4. 容器操作](Cloud/Docker/4. 容器操作.md)
      • [5. 仓库操作](Cloud/Docker/5. 仓库操作.md)
      • [6. 数据卷](Cloud/Docker/6. 数据卷.md)
      • [7. 资源列表](Cloud/Docker/7. 资源列表.md)
      • [8. 应用](Cloud/Docker/8. 应用.md)
    • Kubernetes
      • 安装
      • 基础知识
      • 说明
    • Micro Services
      • [1. 服务框架](Cloud/MicroServices/1. 服务框架.md)
      • [3. 服务安全](Cloud/MicroServices/3. 服务安全.md)
      • [4. 后台服务](Cloud/MicroServices/4. 后台服务.md)
      • [5. 服务容错](Cloud/MicroServices/5. 服务容错.md)
      • [6. 服务监控](Cloud/MicroServices/6. 服务监控.md)
      • [7. 服务部署平台](Cloud/MicroServices/7. 服务部署平台.md)
      • [8. 服务化](Cloud/MicroServices/8. 服务化.md)
      • 参考资料
      • HTTP
      • RPC
      • [x1. API网关](Cloud/MicroServices/x1. API网关.md)
      • [x2. 服务发现](Cloud/MicroServices/x2. 服务发现.md)
      • [x3 监控](Cloud/MicroServices/x3 监控.md)
  • Concept
    • Etcd
    • Swoole
  • Data
    • Algorithm
      • 排序
        • 插入排序
        • 快速排序
        • 冒泡排序
        • 选择排序
        • 直接插入排序
      • 参考资料
      • 哈希算法
      • 一致性hash
    • Data Structure
      • 数据结构
        • [1. 什么是数据结构](Data/DataStructure/数据结构/1. 什么是数据结构.md)
        • [2. 线性表](Data/DataStructure/数据结构/2. 线性表.md)
        • [3. 链表](Data/DataStructure/数据结构/3. 链表.md)
        • [4. 数组](Data/DataStructure/数据结构/4. 数组.md)
        • [5. 栈](Data/DataStructure/数据结构/5. 栈.md)
        • [6. 队列](Data/DataStructure/数据结构/6. 队列.md)
        • [7. 哈希表](Data/DataStructure/数据结构/7. 哈希表.md)
        • [8. 堆](Data/DataStructure/数据结构/8. 堆.md)
        • [9. 二叉查找树](Data/DataStructure/数据结构/9. 二叉查找树.md)
      • Notes
        • Hash表的时间复杂度为什么是O(1)
      • [1 简介](Data/DataStructure/1 简介.md)
      • [2 时间复杂度](Data/DataStructure/2 时间复杂度.md)
  • Data Base
    • Cache
      • 如何保证缓存与数据库的双写一致性
      • Memcached和Redis对比
    • ES
      • 倒排索引
      • 概念
      • 入门
    • Memcached
      • Memcached介绍
      • Memcached使用
    • Mongo DB
      • 安装
      • MongoDB查询
      • MongoDB连接
      • MongoDB入门
    • My Cat
      • 原理
      • Mycat中的概念
    • My SQL
      • 基础篇
        • [1. Mysql](DataBase/MySQL/基础篇/1. Mysql.md)
        • [2. 数据库操作](DataBase/MySQL/基础篇/2. 数据库操作.md)
        • [3. 数据类型](DataBase/MySQL/基础篇/3. 数据类型.md)
        • [4. 数据库设计](DataBase/MySQL/基础篇/4. 数据库设计.md)
        • [5. 索引](DataBase/MySQL/基础篇/5. 索引.md)
        • [6. 事务](DataBase/MySQL/基础篇/6. 事务.md)
        • 编码
        • 范式
        • 一条SQL查询语句是如何执行的?
      • 实践篇
        • [1. 事务回滚](DataBase/MySQL/实践篇/1. 事务回滚.md)
        • [2. 隐式转换](DataBase/MySQL/实践篇/2. 隐式转换.md)
        • [3. 分库分表](DataBase/MySQL/实践篇/3. 分库分表.md)
      • 事务和锁
        • 表锁&行锁
        • 乐观锁&悲观锁
        • 事务
        • 数据库锁
        • mysql死锁的条件及应对措施
      • 性能优化
        • [0. 性能优化](DataBase/MySQL/性能优化/0. 性能优化.md)
        • [1. 执行优化](DataBase/MySQL/性能优化/1. 执行优化.md)
        • [2. 架构优化](DataBase/MySQL/性能优化/2. 架构优化.md)
      • Note
        • 如何进行分库分表
        • 如何选择主库和从库
        • 如何做数据恢复
        • 删除和添加索引,为什么要先加后删
        • 什么是关系表
        • 数据库单表由万级变成亿级,怎么处理
        • 索引失效的场景
        • 一条SQL查询语句是如何执行的
        • count查询为什么会慢
        • [MySQL 意外宕机,如何数据恢复](DataBase/MySQL/Note/MySQL 意外宕机,如何数据恢复.md)
        • Mysql安装
        • mysql查询语句怎么做性能分析?
        • mysql批量删除表名符合条件的表
        • MySQL数据库规范
        • Pt Online Schema Change
        • SQL慢查优化方案
        • [Warning PDO Statementexecute SQLSTATE HY 093 Invalid Parameter Number Number Of Bound Variables Doe
      • [x1. 常见问题](DataBase/MySQL/x1. 常见问题.md)
      • [x2 参考资料](DataBase/MySQL/x2 参考资料.md)
      • [x3 资料推荐](DataBase/MySQL/x3 资料推荐.md)
    • Redis
      • 多线程
        • KeyDB实现
        • [Redis 多线程](DataBase/Redis/多线程/Redis 多线程.md)
      • 分布式
        • 集群
        • 清理集群
        • 哨兵机制
        • 主从复制
        • Redis分布式锁
      • 基础知识
        • [1. 简介](DataBase/Redis/基础知识/1. 简介.md)
        • [2. 数据结构](DataBase/Redis/基础知识/2. 数据结构.md)
        • 配置说明
        • 问题画像
        • 知识图
      • 进阶
        • 管道
        • 消息队列
        • 性能调优
        • 性能分析
        • 优化建议
        • redis升级
      • 使用场景
        • 数据类型适用场景
        • Redis的问题
      • 数据结构
        • 底层的数据结构
        • 复杂度
        • 键值
        • 内存分配
      • Notes
        • 缓存特征、介质
        • 如果有大量的key需要设置同一时间过期,一般需要注意什么?
        • 如何查找key
        • 如何应对缓存穿透和缓存雪崩问题?
        • 如何找到最大值对应的key
        • 为什么要使用Nosql
        • [为什么Redis 是单线程却能支撑高并发](DataBase/Redis/Notes/为什么Redis 是单线程却能支撑高并发.md)
        • 应用场景
        • [Redis 字典遍历](DataBase/Redis/Notes/Redis 字典遍历.md)
        • [Redis Cluster请求路由原理](DataBase/Redis/Notes/Redis Cluster请求路由原理.md)
        • Redis的监控
        • Redis的同步机制
        • redis的hash怎么实现的?
        • redis过期策略和缓存置换策略
        • [Redis缓存数据类型的选择 ](DataBase/Redis/Notes/Redis缓存数据类型的选择 .md)
        • Redis集群之间是如何复制?
        • Redis迁移
        • Redis如何做持久化的
        • Redis写入大量数据后,为什么变慢了
        • redis有哪些危险的命令?怎么避免
      • 参考资料
  • Distributed
    • Zookeeper
      • 常见问题
    • 多线程环境解决方案
    • 分布式链路追踪
    • 分布式事务
    • 分布式系统原理以及常用解决方案
    • 分布式最终一致性
    • 数据一致性
    • 一致性哈希
    • CAP定理
    • Map Reduce
    • Untitled
  • Front End
    • [01 前端工具](FrontEnd/01 前端工具/README.md)
      • [Apidoc](FrontEnd/01 前端工具/Apidoc.md)
      • [Sublime](FrontEnd/01 前端工具/Sublime.md)
      • [Webpack](FrontEnd/01 前端工具/Webpack.md)
      • [Web Storm](FrontEnd/01 前端工具/WebStorm.md)
    • 04 Java Script
      • [javascript上传图片检测宽度高度文件大小](FrontEnd/04 JavaScript/javascript上传图片检测宽度高度文件大小.md)
      • [js中iframe的使用](FrontEnd/04 JavaScript/js中iframe的使用.md)
    • 10 Vue
      • [开源项目库汇总](FrontEnd/10 Vue/开源项目库汇总.md)
      • [学习步骤](FrontEnd/10 Vue/学习步骤.md)
      • [Awesome](FrontEnd/10 Vue/awesome.md)
      • [My Vue](FrontEnd/10 Vue/MyVue.md)
      • [Vue](FrontEnd/10 Vue/Vue.md)
      • [Vuejs入门](FrontEnd/10 Vue/Vuejs入门.md)
    • x1 资源
      • [博客推荐](FrontEnd/x1 资源/博客推荐.md)
    • x2 常见问题
      • [Cross Domain](FrontEnd/x2 常见问题/Cross-domain.md)
  • Notes
    • 1.Shell
      • 常用命令
      • 替换功能
      • Gocron处理Docker进程的问题
      • Shell中date命令用法
      • shell字符串
    • 编码
      • 参考资料
      • 代码调试
      • 代码规范
      • 代码简洁之道
      • 代码质量
      • 代码走查
    • 监控
      • Prometheus
    • 开发
      • 脚本常见问题
    • 开发流程
      • 持续集成
    • 其他
      • Gitbook自动生成SUMMARY
    • API
      • API加密方案
      • api设计
    • Git
      • 常见问题
      • 代码回滚
      • 多版本工作流
      • 工作流
      • 快速入门Git
      • 三路合并
      • [git blame出现的人员不一致](Notes/Git/git blame出现的人员不一致.md)
      • Git撤销merge合并
      • Git忽略.gitignore
      • Git远程分支
    • HTTP
      • 499问题处理
      • HTTP状态码
    • Linux
      • 安装扩展
      • 回收站
      • 解析配置
      • 命令
      • 文件权限问题
      • [Apache 和 nginx](Notes/Linux/Apache 和 nginx.md)
      • [Linux 防止rm误删文件,将rm配置成mv到.trash ](Notes/Linux/Linux 防止rm误删文件,将rm配置成mv到.trash .md)
      • [Linux 中 Crontab 定时任务执行时的环境变量问题](Notes/Linux/Linux 中 Crontab 定时任务执行时的环境变量问题.md)
      • [Linux下执行shell脚本,提示No such file or directory](Notes/Linux/Linux下执行shell脚本,提示No such file or director
      • linux压缩和解压缩命令大全
      • Untitled
      • Vim批量替换
    • Nginx
      • ERR_CONTENT_LENGTH_MISMATCH解决方法
      • [Nginx 和 Apache 各有什么优缺点?](Notes/Nginx/Nginx 和 Apache 各有什么优缺点?.md)
      • windows下安装LNMP
  • Ops
    • 软件和架构标准化
  • PHP
    • 0.原理
      • php的四种运行模式
    • 1.语言参考
      • 命名空间
      • 事件系统
      • 数组
      • 注解
      • Collection
    • 2.编码
      • 代码分析
      • 事务和锁代码优化
      • Sonar Qube
      • Validate
    • 3.框架
      • 基础
        • Swoole高效跟传统的web开发区别
      • Codeigniter
        • 安全性
        • 钩子
        • 缓存机制
        • 路由
        • 配置管理
        • Common
        • MVC
        • ORM的接口
      • Laravel
        • 介绍
        • 最佳实践
      • Laravel Admin
        • 介绍
      • Lumen
        • 脚本
        • 入门
      • Slim
        • 如何编写Cron脚本
      • Swoft
        • 数据库操作
          • Dao
          • [x0 学习资料](PHP/3.框架/Swoft/数据库操作/x0 学习资料.md)
        • [0. 安装](PHP/3.框架/Swoft/0. 安装.md)
        • [1. 目录结构](PHP/3.框架/Swoft/1. 目录结构.md)
        • [2. 生命周期](PHP/3.框架/Swoft/2. 生命周期.md)
        • [3. HTTP服务](PHP/3.框架/Swoft/3. HTTP服务.md)
        • [4. 缓存](PHP/3.框架/Swoft/4. 缓存.md)
        • [6. 视图](PHP/3.框架/Swoft/6. 视图.md)
        • 注解
        • Task
        • [x1. 问题](PHP/3.框架/Swoft/x1. 问题.md)
      • Swoole
        • swoole协程
      • Tars
        • 安装后台
    • 4.进阶
      • 加密
        • AES
      • 进程
        • 管道
        • 进程间通信
      • 扩展
        • 如何编写一个PHP的C扩展
      • 内核
        • 参考资料
        • 看源码原则
      • Composer
        • 参数
        • 钩子
        • 类加载优化
        • PSR
    • 5.性能
      • 调用链
        • 跟踪系统
      • 性能分析
        • 非侵入式监控平台
        • 接口性能分析实践
        • Xhprof
      • Notes
        • [Opcache 和 APCu的关系](PHP/5.性能/Notes/Opcache 和 APCu的关系.md)
      • 并发和异步
      • APCU
      • Xdebug
    • 6.常见问题
      • 常见问题
      • 常用函数
      • 反射类
      • 浮点数的精度
      • 环境搭建常见问题
      • [获取当前客户端的 IP 地址](PHP/6.常见问题/获取当前客户端的 IP 地址.md)
      • 垃圾回收机制
      • 敏感词过滤
      • 魔术方法
      • 内网和外网
      • 生成器
      • 事务处理
      • 无法常驻内存
      • 析构函数
      • 字符串加密解密
      • AOP
      • Curl
      • GET与POST的区别
      • include和require的区别
      • IP地址函数ip2long
      • Iterator
      • JSON
      • JSON解密的问题
      • [Nginx 设置 PHP_VALUE 的灵异问题](PHP/6.常见问题/Nginx 设置 PHP_VALUE 的灵异问题.md)
      • Nginx和PHP-fpm的关系
      • [php 后端实现JWT认证方法](PHP/6.常见问题/php 后端实现JWT认证方法.md)
      • [PHP Jit](PHP/6.常见问题/PHP jit.md)
      • PHP程序如何debug
      • PHP升级可能导致的坑
      • php数组
      • PHP注解的实现
      • [Session 和 Cookie](PHP/6.常见问题/Session 和 Cookie.md)
      • xdebug的使用
    • 7.不足
      • 无法常驻内存
    • 8.面试题
      • 参考资料
      • 面试题
  • Resource
    • Github
      • Github项目推荐
    • Interview
      • 腾讯面试
    • Tools
      • Git
        • 代码回滚
        • 多版本工作流
        • 工作流
        • Git忽略.gitignore
        • Source Tree
      • 流程图
      • 思维导图
      • Markdown
      • Other
      • Postman
      • Sublime
    • Website
  • Team
    • 研发效能
      • 持续开发
      • 定义
      • 度量
    • 工作总结
    • 研发体系
  • Web
    • 多环境测试方案
    • 应用框架
    • Web测试
    • Web基础开发
Powered by GitBook
On this page
  • 架构标准化
  • 配置域名化
  1. Ops

软件和架构标准化

软件
建议版本
备注

优先统一软件

CentOS

首先大版本统一、小版本可通过yum update进行升级

Nginx

1.16.1

PHP

7.4.x

Redis

5.0.x

Mongodb

4.2.6

MySQL

5.7.x 8.0.x

Oracle JDK

1.8

Openjdk

1.8

Haproxy

2.0.14

Kafka

2.2.0

Zookeeper

3.4.14

架构标准化

架构类型
推荐理由
备注

【要求】LVS→Haproxy→ Nginx(业务WEB)

LVS做4层负载效率高但受限于运行模式、Haproxy作为中间层方便调度

标准Web架构

【要求】LVS → Haproxy → 应用程序

请求量大

标准四层网络负载架构

【要求】Apache+PHP → Nginx+PHP

Nginx轻便、占用资源少、并发高

建议所有业务

【要求】memcache → Redis

中间件相关:

【建议】Redis主从升级成哨兵模式

【建议】MySQL升级成中间件代理

ProxySQL

配置域名化

​ 所有连接中间件均采用域名化配置

PreviousOpsNextPHP

Last updated 3 years ago