摘要:
什么是 REST REST 是 REpresentational State Transfer 的缩写,维基百科上解释是表述性状态传递,是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。REST 是一种基于 Web 标准的软件架构,一种设计风格而不是标准,与技术无关, 阅读全文
摘要:
前言 领域驱动设计是一个开放的设计方法体系,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题,本文将介绍领域驱动的相关概念。 一.软件复杂度的根源 1.业务复杂度(软件的规模) 软件的需求决定了系统的规模。当需求呈现线性增长的趋势时,为了实现这些功能,软件规模也会以近似 阅读全文
摘要:
广度(BFS)和深度(DFS)优先算法这俩个算法是图论里面非常重要的两个遍历的方法。 下面一个例子迷宫计算,如下图 解释: 所谓广度,就是一层一层的,向下遍历,层层堵截,看下面这幅图,我们如果要是广度优先遍历的话,我们的结果是V1 V2 V3 V4 V5 V6 V7 V8。 广度优先搜索的思想: ① 阅读全文
摘要:
Golang调度器 先看看golang调度的由来。 一. 单进程时代不需要调度器 在早期操作系统是单进程的,一个进程拥有整个系统的所有资源,所以也不需要调度器。 但是单进程的操作系统也有明显的缺点: 1. 采用单一的执行流程,计算机只能一个任务一个任务处理。 2. 进程阻塞所造成CPU资源的浪费。 阅读全文
摘要:
1. php 的垃圾回收机制是什么? php 的垃圾回收机制PHP 可以自动进行内存管理,清除不需要的对象。PHP 使用了引用计数 (reference counting) GC 机制。每个对象都内含一个引用计数器 refcount,每个 reference 连接到对象,计数器加 1。当 refer 阅读全文
摘要:
负载均衡算法种类 1.轮询法(Round-Robin Scheduling)。 负载均衡系统接收到请求后,轮询调度按照顺序轮流分配给服务器。 这种方式非常简单,只管按顺序分配,至于服务器当前负载情况、硬件能力等都不关心,只要服务器还能工作,就可以分配,除非服务器挂了。 2.加权轮询(weight r 阅读全文
摘要:
简介 Gin是一款轻量级golang框架,他在Go web开发中使用率是很高的。 Gin框架特点 1. 使用简单。 2. 并发高。 3. 内存占用少。 下图是各个web框架压测对比,吞吐量越高越好。 Gin框架安装 安装要求:go版本大于等于1.12(使用go Module) 下面开始安装 #创建项 阅读全文
摘要:
树状数组介绍 树状数组是一种可以用于查询任意两位之间的所有元素之和的一种树型数据结构的数据结构。比如对于一个数组有n个元素 arr = (arr[1]....a[n]),那么可以求出第i个到第j个元素的和,sum = arr[i]+...+arr[j]。 阅读全文
摘要:
1. 什么是搜索引擎 搜索引擎(Search Engines)是一个对互联网上的信息资源根据用户需求与一定的算法,运用特定策略从互联网进行搜集整理(网页爬虫程序来执行搜集任务),然后供你查询的系统,它包括信息搜集、信息整理和用户查询三部分。 下图是搜索引擎简单工作原理图 2. 什么是lucene? 阅读全文
摘要:
缓存常见类型 1. 服务端缓存。比如Memcached,Redis。 2. 代理缓存。比如Squid,Varnish。 3. 浏览器缓存(Browser Caching),也就是HTTP缓存机制。其机制是根据HTTP报文的缓存标识进行的判断,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次 阅读全文