浅谈Javascript异步

0x00 先从js运行机制说起 Javascript是一门事件驱动,非阻塞式I/O模型的语言。虽然在一般的实现上,它是单线程的,但是由于它本身的一些设计机制,导致了它实际上是一门在面向高并发场景下执行效率非常高的语言。 在js中,一旦有事件产生(例如:网络连接建立,网络数据包到达,磁盘I/O操作完成,定时器到时触发),js就会将其加入到事件队列里,再进行处理。实际上,js在执行的时候,其主要的流程可以看做是一个叫Event Loop的东西 while(true) { if(EventQueueIsNotEmpty) { Pop the front item of the

  • yxz
16 min read

Proxmox VE 踩坑记录

最近入了一台独立服务器,如果直接拿来跑项目的话就太浪费资源了。于是打算使用Proxmox VE这款虚拟化管理软件进行VPS管理。 Proxmox VE是一款套开源的虚拟化管理软件,用户可通过网页的方式来管理服务器上使用 kvm 以及 lxc 技术运行的虚拟机。同时提供了一些先进功能的支持,如集群、HA等。 0x00 安装 Proxmox VE是基于Debian进行开发的,主要有两种安装方式。 其一是通过官方提供的iso作为一个全新的系统安装 另一种方式是在已有的Debian系统上安装 手动安装时请务必保证网卡配置正确,若出错的话在不带IPMI的机子上很难处理。 安装完成后即可通过https://ip:8006/访问管理页面 另外,这里记录一下版本升级的方法。由于Proxmox VE是一家商业公司在运营,所以一些功能是需要购买订阅才能使用的,例如说版本更新功能。

  • yxz
5 min read

记一次删库救火经历&总结数据恢复的一些方法

事出 前几天部门上线了个新页面,结果刚上线不到一小时就出现了一点小锅,需要临时改代码。本来代码快要改完了,突然群里面传来了一句话 救火 当时心里面就凉了一大半。删数据就算了。。偏偏删的还是最重要的那个表。而这个活动今年刚增加了二维码分享功能,还没上线一小时就记录了341封信件,用户量正在指数级增加,停服是不可能停服的了(错误想法),顿时整个人就懵了。 尝试使用万能的bin log 在mysql中,有一种叫bin log 的东西,它是用于记录对数据库数据进行更新操作的所有SQL语句,同时还会在每条语句上附加上timestamp。理论上如果保留了数据库建立以来所有的bin log,无论进行了什么操作都能将数据恢复回来,可以说是删库后的一根救命稻草了。 由于之前有过数据恢复的经验,意识恢复的时候立刻登上服务器查看mysql的配置文件,然而 还有一点热量的心瞬间凉透了。 疾病乱投医

  • yxz
9 min read