Graphql的系统设计中, 要特别注意模块间的耦合问题, 切忌把所有模块都搅和在一起
- 进程有自己独享的堆栈
- 线程共享堆, 但是有自己独享的栈
- 协程同样是共享堆, 有自己独享的栈
- 进程和线程都由操作系统调度, 一般来说调度的方法是抢占式的, 协程是自己来调度的
协程对于计算密集型提升不了太多性能, 协程主要提升IO操作的效率
协程在遇到IO操作时, 会把权利交出来, 交给其他协程
所以如果是密集型计算, 协程不会把控制权交出来
处理N+1问题, 可以参考这个库的解决https://github.com/graphql/dataloader
主要思路是 当程序未正在访问数据库时, 会把同时在等待的请求参数都汇总在一起, 一起请求数据库
这本书是以实战的思路去介绍Graphql, 但是也引入了大量跟Graphql不紧关联的技术
所以 很多东西都一笔带过, 主要为了给读者介绍下相关的技术
评分3.5