背景
最近在公司遇到了很多新的知识点、发现了很多新的思考点、对于一些问题学到了很多新的解决方案…感到脑子不够用,特开一个篇章用以记录在ERC工作过程中遇到的、悟到的东西!仅给自己作为整理知识用
What are you thinking?
自动化部署
思考:当前公司使用vagrant进行本地自动化开发环境搭建,这个过程中遇到很多不爽的地方,哪:
- 为什么我们会选择vagrant进行搭建本地开发呢?
- 为什么没有选择Docker呢?vagrant与Docker的区别在什么地方呢?
- 什么场景下去使用它们两者呢?它们的原理又是啥呢?
- vagrant同步更新文件延缓问题?[插件:
vagrant-winnfsd-1.4.0.gem
==>vagrant plugin install /gem-path
] - 如何使用VBoxManage加载box解决vagrant运行缓慢问题?
- Docker的深入了解
- 通过对vagrant的了解和学习发现”计算机网络”连一些基础知识都已经还给老师了?但是这很重要,抽时间整理、记录、深入学习?计算机四大原理:操作系统原理、编译原理、计算机组成原理、网络原理;线性代数;算法与数据结构
消息队列
思考:当前使用gearman做消息队列,做异步操作,并没有真正发挥消息队列的”作用”,虽然老大说gearman迟早要换,好奇:
- 为啥当初要选型用gearman呢?
- gearman的劣势是什么?
- gearman的应用场景是啥?
- gearman相比MQ是不是真的没有可取之处?
- 消息队列的运用:①削峰–>es:秒杀活动<==>地铁拉闸限流;②业务解耦–>MQ,互联网架构解耦神器[寄信人和邮差的场景==>消费者];③异步
- 使用环形队列解决自动确认订单问题,避免全表扫描
服务
思考:现在公司用到的一些服务,以前也是粗浅掌握,现在也是用公司封装的,是时候真正掌握和学习了解它们了
缓存服务
- Memcache && Memcached==>[类似MySQL和mysqld:
d
是daemon
守护进程的意思]; PHP中的memcache(使用PHP实现)和PHP中的memcached(使用C的libmemcached实现,更加完善); - Radis
- MongoDB
- 各类缓存服务系统的CAS实现?
- 各类缓存服务系统的失效算法是如何的?LRU淘汰算法
- 安全:缓存击透问题
- 分布式之数据库和缓存双写一致性方案解析
数据库服务
- MySQL都出8啦…还不学习了解干嘛?
- 上一次帝明分享了MySQL的优化、慢查询的优化、索引的优化,整理深入学一下吧
- MySQL的btree索引和hash索引的区别
- 公司大神们都推荐了《MySQL高性能》这本书,是不是该提上日程来看啦~
- 做了这么多次统计,自己踩了这多坑,看别人踩了这么多坑,该总结了吧?[select主键方式来代替count方案;使用一张临时表来存储定时执行记录:多批少量跑大表数据]
- 使用记录目标数据的方式来避免全表扫描;
- MySQL计算大表count(*)替代方案:
SELECT id FROM zuzuche_world_db.new_search_history_tbl {$where_str} LIMIT 5000,1
; - CAS原则:Compare and Set【思考:如果重试失败呢?do…while?】
- 一致性哈希分表
锁机制
- 锁的概念?分类?MySQL中的锁:https://blog.csdn.net/soonfly/article/details/70238902 https://blog.csdn.net/soonfly/article/details/70238902
- MySQL中的锁:https://blog.csdn.net/puhaiyang/article/details/72284702
- MySQL中的锁
- 不同类型锁的应用场景?
- 高级”锁”的设计
全文搜索服务
- sphinx
- Elasticsearch搜索服务==>Elasticsearch是否可以代替Mongo成为搜索存储服务器?
- ELK+Radis构建千万级日志搜索架构
编程思维
最近写代码脑子有点抽,抽空整理学习一下以下的知识吧
- 面向过程编程[你没看错,现在项目里还有一些古来代码还是这样写的,改也难改…但至少优雅点吧]
- 面向对象编程[兄台看框架源码去吧]
- 面向切面编程[兄台看框架源码去吧]
- 限流器
- 协商
- RSA加解密
- 流式数据库读取
- LRU算法
PHP
工作中发现掌握火候还不够的问题和知识点
- PHP运行模式:https://blog.csdn.net/time888/article/details/53414809
php-fpm.conf
配置详解- opcache深入学习[以前只是知道有这个东西,但是没怎么深入了解过]
- PHP生成器:①PHP生成器详解 ② 在PHP中使用协程实现多任务调度
- PHP协程调用
- Composer的深入了解学习与运用:http://docs.phpcomposer.com
- 推荐阅读博客:https://www.awaimai.com/2200.html
fsockopen
替代公司实现异步请求方案:https://segmentfault.com/a/1190000002982448 https://blog.csdn.net/qq43599939/article/details/50570098- 使用
fastcgi_finish_request
提高页面响应速度; - [ ][使用
fastcgi_finish_request
的踩坑问题:max_execution_time-超时问题]==>要看PHP运行的模式是啥?怎么处理? - [ ]使用
fastcgi_finish_request
的踩坑问题:客户端断开连接-生命周期问题–使用ignore_user_abort(true)解决,同时也要看执行模式是啥? - 使用
ignore_user_abort
实现定时任务方案==>[一般没人这么做吧,定时任务肯定是用cgi模式做居多的,ignore_user_abort
是否对cgi模式
有效?==>应该没效吧,不然尼玛怎么停呢?每次都kill掉这个进程?]一般定时计划方案:
- linux系统的
crontab
- 使用进程管理工具:Supervisor
- linux系统的
- PHP使用curl_multi_init带来CPU高负荷问题
- PHP异步处理:http://www.laruence.com/2008/04/14/318.html
- PHP执行linux命令:http://blog.51yip.com/php/1064.html
工具
工具一直都有在用,但是随着工作和平时慢慢积累的一些好用的配置和设置该记录一下啦
- PHPStrom主题设置;格式化代码设置;插架安装-Git
- SublimeText3:主题设置;插件安装-GoAnyWhere
- VIM:使用vim一开始真的只是装逼,装逼失败之后…发现原来这个东西真的是我用的所有编辑器里最不卡/最牛逼的
- Git:被运维哥哥(海明)怼过之后,潜心学习Git的使用,发现Git真的很棒,也学习到很多以前所不懂的,并与同事做了分享![感谢那些让你进步的人~]
- 代码质量检测工具:sonarqube
运维
- 最近公司服务器一直CPU报警,消耗太高,如何排查CPU过高?
- 运维生成空间:http://www.ttlsa.com
- 数据恢复:https://mp.weixin.qq.com/s/Ozqu2A7Sy_TGKkF6yF1rDQ
- 正向代理(代理客户端访问中间机器,让其帮忙去访问服务机器:例如自己搭梯子去实现翻墙) && 反向代理(服务机器访问中间机器,让中间机器访问内部机器:例如:SLB负载均衡集群)
- [Squid服务]:http://blog.51cto.com/guojiping/978839 http://wiki.jikexueyuan.com/project/linux/squid.html
Nginx
和Squid
和Varnish
的比较- CDN了解
CDN
回源问题设置:Cookie、UA信息配置- 不同场景下 MySQL 的迁移方案
- MySQL大表迁移方案:【car_list/car_detail数据冗余清理】