摘要:
在JavaScript编程中,理解this、call和apply是道槛,如果能正确的理解它们的本质及其应用。那么在以后的JavaScript中会得心应手。 this 跟别的语言大相径庭的是,JavaScript的 this 总是指向一个对象,而具体指向哪个对象是在运行时基于函数的执行环境动态绑定的, 阅读全文
摘要:
前言 在面向对象中,类之间的关系有六种,分别是: 类与类之间关系 关联(Association) 两个相对独立的对象,当一个对象的实例与另一个对象的实例存在固定关系时,这两个对象之间就存在关联关系,关联体现的是一种强关联关系,关联关系形式有四种:单向关联、双向关联、自身关联和多维关联。 单向关联 场 阅读全文
摘要:
前言 熟悉Node.js的肯定对下面的代码熟悉 这段代码很好理解,就是加载一个http模块。但是你有没有想过为什么要这么写?这其中的缘由是什么呢?下面将一一道来。 JavaScript模块化 起因 开发中,一般把全局变量放到一个对象里,以防过多的全局变量。比如: var global={ $:fun 阅读全文
摘要:
前言 随着大型网站的各种高斌发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题。大型网站的架构也在不断发展。提高大型网站的高可用架构,就不得不提分布式系统(Distributed Systems)。下面说一下分布式系统及其相关的概念 在学习分布式系统之前,先了解一下与之相对应的集中式系统是什么样的。... 阅读全文
摘要:
Session由来 由于HTTP协议是无状态的,客户端与服务器端进行“请求-响应”操作后,建立的连接就释放了,服务器端根本不知道刚才是哪个客户端访问的。但是有些场景是需要知道客户端的状态的,最典型的就是登陆问题,成功登陆后一段时间内就不需要再登陆。为了解决这个问题,服务器端引入了Session技术, 阅读全文
摘要:
前言 索引是对数据库表中的一列或多列的值,进行排序的一种结构 ,使用索引可以快速访问数据库表中的特定信息,是加快数据库查询的技术。通俗理解,数据库索引就是现实生活中字典的索引。 索引的优缺点 优点: 索引可以避免全表扫描; 创建系统唯一性索引,可以保证每一行数据的唯一性; 大大提高数据检索的速度; 阅读全文
摘要:
什么是消息队列 消息队列(Message Queue,简称MQ),从字面上的意思来看,本质就是一个队列,FIFO(先入先出),只不过队列中存放的内容是Message而已。 消息队列的作用 消息队列主要用于不同进程(Process)/线程(Thread)之间通信。它主要解决两个问题: 系统解耦:项目开始时,无法确定最终需求,不同进程间,添加一层,实现解耦,方便今后的扩展 消息缓存... 阅读全文
摘要:
负载均衡算法可以分为两类:静态负载均衡算法,基于服务器的容量,就是高配置的服务器比低配置的服务器分配更多的请求;动态负载均衡算法根据服务器的状况,比如通过监控可以得到平均响应时间,或者CPU占用率,内存占用率按照某种方式进行计算,作为权重值 静态负载均衡算法 随机(Random):利用随机数生成算法选取一个服务器,然后把连接发送给他。虽然许多负载产品都支持该算法,但是它的有效性一直受到... 阅读全文
摘要:
在缓存设计中有两点是必须要考虑的: 缓存的数据和目标数据的一致性问题 缓存的过期策略 其中,缓存的过期策略是重点,因为缓存的存储空间往往是有限的,当缓存中的存储块被用完,就需要把过期的缓存移除掉,所以我们需要设计一种良好的缓存淘汰算法来实现。业界中常用的淘汰算法有 LRU和LFU的区别是,LFU算法 阅读全文
摘要:
AOP 是 Aspect-Oriented programming 的缩写,中文翻译为面向切面编程,它是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。它和OOP一样是一种编程思想。 AOP基本概念 横切(cross-cutting):与对象核心功能无关的公 阅读全文