Skip to main content

浅谈分布式锁

随着架构系统的演进,由纯真的单机架构到容器化编排的分布式架构,可以说是一个大型互联网企业发展的必然走向。在网站初创时,应用数量和用户较少,可以把Tomcat和Mysql部署在同一台机器上。随着用户数量增多,访问量增大,并发升高,Tomcat和MySQL竞争资源,此时,单机已经扛不住了,需要把Tomcat和MySQL分离在不同的机器上,用于提升单台机器的处理能力。业务从来没有减少,产品越做越大。应用也越来越复杂,原来的大应用,拆分成多个小应用,加入各级缓存,做了反向代理负责均衡,最后坠入分库分表的深渊。

继续阅读

Mac 下 Nginx、PHP、MySQL 和 PHP-fpm 的安装和配置

手动搭建nginx+php+mysql是phper的一件必备的技能,PHP界众所周知LAMP或者LNMP是Linux+Apache(Nginx)+Mysql+PHP的一套运行环境,而Linux和Mac有相似之处,其核心来源于Unix,所以Linux中的大部分命令在Mac中也是完美支持的,本文就MNMP环境的搭建做一个经验总结。

我们知道nodes与npm,java与maven(或者gradle),php与composer,Ubutun与apt-get,Centos与yum等等,均属于开发语言或操作系统与库或者安装包的依赖管理,而Mac上则常用的包管理器是homebrew。

继续阅读

shell多进程执行任务

管道就像水管,有流入才会有流出,水管数水流的通道,管道是数据的通道。管道分为无名管道和有名管道。

无名管道:常用的|就是管道,只不过是无名的,可以直接作为两个进程的数据通道,比如:cat file.txt | grep test

有名管道:mkfilo 可以创建一个管道文件,比如:mkfiflo testfifo

管道有一个特点,如果管道中没有数据,那么取管道数据的操作就会阻塞,直到管道内进入数据,然后读出后才会终止这一操作,同理,写入管道的操作如果没有读取操作,这一个动作也会阻塞。

继续阅读