April 12, 2020
Node是面向网络进行设计,web应用已经不再是单台服务器就能胜任的,在现今高并发已经是现代编程经常遇到的问题,网络的访问关系到用户的体验与资源的分配及资源的合理利用。
随着网站或应用的不断膨胀,数据将会分布在多台服务器上,资源分布后将会造成获取资源耗时变长,会更加造成异步与同步在性能上的差异,只有后端能够快速响应资源,才能让前端的体验更好。
单线程同步编程模型会阻塞I/O导致硬件资源得不到更优的使用,多线程编程模型也因为编程中的死锁、状态同步问题都会造成开发的难度,Node在两者之间给出的解决方案:利用单线程原理多线程死锁、状态同步等问题;利用异步I/O,让单线程原理阻塞,以更好地使用CPU。
Node的异步I/O整个过程包括事件循环、观察者和请求对象等,接下来将会从这几方面介绍Node的异步I/O