架构师训练营第八周学习总结

用户头像
sunnywhy
关注
发布于: 2020 年 07 月 29 日

本周讲解的主要内容有:

  • 数据结构与算法

  • 网络通信协议

  • 非阻塞IO

  • 数据库架构原理



在数据结构和算法中,作为架构师,需要熟悉和简单认识常见的算法及其时间复杂度,如果平时工作聚焦在业务开发上,可能手写算法的机会不多,但是对于数据结构,应该掌握的非常熟练,了解常见数据结构的适用场景,灵活使用。



在网络通信协议中,讲解了OSI七层模型和TCP/IP四层模型,并分别讲解了每一层的原理与作用。从应用上来说,理解TCP建立连接的3次握手和关闭连接的4次挥手比较重要,至少要知道这是一个很消耗时间的资源的过程。所以为了解决这个问题,才有各种连接池和保持长连接的方式, 同时这也是http协议版本升级想要解决的主要问题。



非阻塞IO是为了解决阻塞IO的问题而存在的。当普通的IO读写未完成时,用户线程会一直阻塞,等待读操作或写操作完成。造成的问题是,在高并发的情况下,线程是稀缺资源,因为IO而阻塞,会影响可用线程的数量,极端情况下甚至会导致系统无线程可用而崩溃。非阻塞IO通过用一个额外的线程监控多个socket连接的方式(轮询或event队列),可以实现线程的复用,当socket完成读写的时候再启动新线程处理,从而确保新线程无需等待。



数据库架构原理中,讲解了SQL的执行过程如下: SQL--连接器--语法分析--语义分析--执行引擎。理解了这个过程,也就理解了statement和preparedStatement的区别,statement需要完成的执行上述过程,而preparedStatement已经执行完语义分析,生成了执行计划,只需要加载参数送入执行引擎即可。同时讲解了索引的作用,主键索引与其他索引的不同以及他们在文件系统中的结构,理解了这些本质的内容,才能更好的在工作中使用索引来优化,而不是简单的“sql有点慢,加个索引试试”。

发布于: 2020 年 07 月 29 日 阅读数: 9
用户头像

sunnywhy

关注

还未添加个人签名 2019.04.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第八周学习总结