系统架构7个非功能性需求
非功能性需求是什么呢?保障系统持续健康运转的辅助需求。依然以电商系统的优惠券为例,在促销活动期间发放大量优惠券,如何防止用户集中领券时系统不崩盘呢?活动结束后,如何收缩服务器,节省服务器资源呢? 非功能性需求是面向运维的,重要但是不太紧迫,有时候可以没有操作界面,由架构师提出解决方案,再推动各个业务开发部门去接入相应组件。这些辅助系统对业务系统性能影响很小,并且长期处于优化状态。
非功能性需求是什么呢?保障系统持续健康运转的辅助需求。依然以电商系统的优惠券为例,在促销活动期间发放大量优惠券,如何防止用户集中领券时系统不崩盘呢?活动结束后,如何收缩服务器,节省服务器资源呢? 非功能性需求是面向运维的,重要但是不太紧迫,有时候可以没有操作界面,由架构师提出解决方案,再推动各个业务开发部门去接入相应组件。这些辅助系统对业务系统性能影响很小,并且长期处于优化状态。
整理一些操作系统面试题,内容包括Linux结构、Linux内存管理等等。本章节面试题有:Linux有什么特点和优势;Linux的基本组件有哪些;Linux内核有什么作用;为什么需要进程间通信,有哪些通信方式;Linux文件系统有什么特点;软链接和硬链接有什么区别;Linux常见系统目录的作用;Linux内存管理机制是什么。
整理一些网络基础面试题,内容涵盖网络协议、网络编程、开源通信组件等等。本章节面试题有:什么是Socket,交互过程是怎么样的;如何用代码实现TCP Socket通信;如何用代码实现 Socket 双向通信;通过线程池如何优化上面的服务端程序;说说select、poll、epoll的区别;说说 Netty 的线程模型。
20年前,中国网民听歌是自由的,准确点说是听盗版歌的自由。2002年11月,百度上线MP3搜索功能,几乎能搜索和下载到所有的歌曲。按相关的版权法规,百度未经授权使用他人资源牟利是违法的。当时互联网产业违法采集数据、传播盗版是家常便饭,版权管理形同虚设,百度顺势而为分了一块大蛋糕。盗版音乐砸了音乐人的饭碗,就如同盗版软件摧残软件从业者。最近十多年,政府对音像作品版权的管理日趋严格,这是一件利国利民的好事,一个行业兴盛的起点首先是从业者得到应有的报酬。
整理一些网络基础面试题,内容涵盖网络协议、网络编程、开源通信组件等等。本章节面试题有说说HTTP协议的交互流程;HTTP和HTTPS有什么差异,说说SSL交互流程;HTTP协议都有哪些方法;REST和HTTP什么关系;浏览器发生302跳转背后的逻辑;如何理解HTTP协议是无状态的;HTTP协议的长链接与短链接是什么;网络七层模型是什么,HTT协议工作在哪一层;Session和Cookies有什么区别;建立TCP连接的过程什么。
大学时期,我首次使用了Mybase管理笔记和文档。Mybase的界面有点古板,但是功能异常强大。它的缺点也显而易见,没有移动客户端,无法在多平台同步数据。七八年前,我开始使用Evernote(本土化后叫做印象笔记),客户端UI很美观,但是整体响应有点慢,免费用户的空间也很小。后来朋友向我推荐了有道云笔记,它是国内的产品,界面很清爽,同步数据也很快,一直使用至今。国内知名的笔记软件还有语雀、为知笔记等等,这些产品固然做的很好,但是无法解决让我忧心忡忡的问题:数据安全。没有任何一家公司敢保证决不泄露客户数据,要么是被黑客窃取数据,要么被公司内鬼盗卖数据,这些案例比比皆是。随着我的笔记数量越来越多,有一些隐私数据也放在云笔记上。有道云笔记绝不可能让用户自行存储数据,我必须寻找新的产品来解决数据安全问题。
为了更好的让百度索引博客页面,我一直采用百度站长提供的普通收录工具,主动推送新文章网址。程序员不能忍受重复的工作,我必须让这个活儿自动化。思路很简单:在文章状态变化的函数上挂载自定义函数,当文章发布后,触发函数调用HTTP模块提交网址。
在计算机发展的早期,一直都是集中式计算,计算能力依赖大型计算机。随着互联网的发展,有些业务需要巨大的计算能力才能完成,而集中式计算无法满足要求,大型计算机的价格也非常昂贵。分布式计算将任务分解成更小的部分,分配给多台计算机处理,这样可以节约整体计算时间,大大提高计算效率。互联网大型网站往往面临高并发访问、海量数据处理等问题,必须保证系统高可用、易伸缩等等。分布式架构采用多台机器协同工作,动态伸缩容量,使用冗余节点来消除单点故障,提高系统可用性。
当单服务器的性能无法满足业务需求时,就需要把多台服务器组成集群系统提高整体的处理性能。我们要使用统一的流量入口来对外提供服务,本质上就是需要一个流量调度器,通过均衡的算法,将用户请求流量均衡地分发到集群中不同的服务器上