摘要:
GoLang之方法与接口 Go语言没有沿袭传统面向对象编程中的诸多概念,比如继承、虚函数、构造函数和析构函数、隐藏的this指针等。 方法 Go 语言中同时有函数和方法。方法就是一个包含了接受者(receiver)的函数,receiver可以是内置类型或者结构体类型的一个值或者是一个指针。所有给定类 阅读全文
摘要:
GoLang之基础 Go是一种并发的、带垃圾回收的、快速编译的语言。 一个例子: 说明: 1、每个go源代码文件的开头都是一个package声明,表示该go代码所属的包;包是go语言中最基本的分发单位,也是工程管理中依赖关系的体现。要生成go可执行程序,必须建立一个名为main的package,并且 阅读全文
摘要:
Twemproxy缓存代理服务器Twemproxy 概述Twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数。Twemproxy是由Twitter开源出来的缓存服务器集群管理工具,主要用来弥补Redis/Memcach... 阅读全文
摘要:
判断点是否在三角形内给定三角形ABC和一点P(x,y),判断点P是否在ABC内,这是游戏设计中一个常见的问题。需要注意的是,这里假定点P和三角形位于同一个平面内。方法一、内角和连接点P和三角形的三个顶点得到三条线段PA,PB和PC,求出这三条线段与三角形各边的夹角,如果所有夹角之和为180度,那么点... 阅读全文
摘要:
C++中const 关键字的用法const修饰变量const 主要用于把一个对象转换成一个常量,例如:const int size = 512;size = 0; // error: assignment of read-only variable上面的例子中,定义size为常量并初始... 阅读全文
摘要:
Kafka——分布式消息系统 架构 Apache Kafka是2010年12月份开源的项目,采用scala语言编写,使用了多种效率优化机制,整体架构比较新颖(push/pull),更适合异构集群。 设计目标: (1) 数据在磁盘上的存取代价为O(1)(2) 高吞吐率,在普通的服务器上每秒也能处理几十 阅读全文
摘要:
跳表 跳表(skip list)是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(lgN)平均时间); 跳表的构造过程: 给定一个有序链表; 选择链表中最大和最小的元素,然后从其它元素中按照一定算法随机选出一些元素,将这些元素组成有序链表;这个新的链表称为一层,原 阅读全文
摘要:
Linux的io机制Buffered-IO 和Direct-IOLinux磁盘I/O分为Buffered IO和Direct IO,这两者有何区别呢?对于Buffered IO:当应用程序尝试读取某块数据的时候,如果这块数据已经存放在了页缓存(page cache)中,那么这块数据就可以立即返回给应... 阅读全文
摘要:
Make命令一、Make的概念Make这个词,英语的意思是"制作"。Make命令直接用了这个意思,就是要做出某个文件。比如,要做出文件a.txt,就可以执行下面的命令。$ make a.txt但是,如果你真的输入这条命令,它并不会起作用。因为Make命令本身并不知道,如何做出a.txt,需要有人告诉... 阅读全文
摘要:
ElasticSearch 集群首先看下ElasticSearch(ES)的架构:术语解释:cluster:代表一个集群,集群中有多个节点,其中有一个master节点,master通过选举自动产生;shards:代表索引分片,ES可以把一个完整的索引分成多个分片,并将它们分布到不同的节点上,从而构成... 阅读全文