Blog

分布式一致性协议Raft的简单理解

2016-01-11
Etcd

基本概念 #

Raft的三个模块 #

分布式一致性协议允许一组服务器节点像一个整体一样工作,允许其中一些节点出现故障也能继续工作下去。正式因为如此,一致性算法在构建大规模分布式软件系统扮演着十分重要角色。Paxos一直是分布式领域内一致性协议的代名词,但Paxos十分难以理解,绝大数实现基于Paxos进行修改才能应用到实际系统中,因此Paxos的具体实现具有不统一性。

...

MySQL调优配置整理

2015-12-02
Mysql

内存 #

innodb_buffer_pool_size #

innodb_buffer_pool_size是使用InnoDB存储引擎时最关键的配置项。InnoDB使用一块专门的内存区域做IO缓存,该缓存既缓存InnoDB的索引块,又会缓存InnoDB的数据块。这个缓存区就是InnoDB Buffer Pool,使用innodb_buffer_pool_size设置其大小,在保证系统及其他程序有可用内存的情况下,设置的越大,缓存命中率越高,访问InnoDB的磁盘IO越少,性能越好。

...

MySQL的状态变量和系统变量

2015-12-01
Mysql

status和variable #

MySQL的状态变量显示MySQL服务实例的状态信息,这些状态信息是动态的,包括MySQL服务器连接的会话状态、变量信息等。默认情况下状态变量都是以大写字母开头。

查看MySQL的状态变量:

1show status;
2show session status;
3show global status;

MySQL系统变量是指MySQL服务实例的各种系统变量(包括全局系统变量、会话系统变量、静态变量),这些变量包含MySQL编译时的参数默认值,或者my.cnf配置文件里配置的参数值。系统变量是一个静态的参数,默认情况下系统变量都是小写字母。

...

Elasticsearch 快速浏览

2015-11-03
Elasticsearch

1.基本概念-文档和索引 #

1.1 文档(document) #

Elasticsearch是面向文档的,文档被序列胡化JSON格式保存在Elasticsearch中。 文档是指存储在索引里的JOSN格式的文档。每个文档由字段组成。 例如:

 1{
 2  "_index": "book-store",
 3  "_type": "book",
 4  "_id": "1",
 5  "_version": 1,
 6  "_score": 1,
 7  "_source": {
 8      "id": 1,
 9      "name": "ElasticSearch Book"
10  }
11}

1.2 字段(field) #

字段是组成文档的基本元素。例如上面例子中的"name": "ElasticSearch Book"这个键值对就是一个最基本的字段。 每个文档都有一些元数据字段,用于标注文档的相关信息,如:

...

Linux系统的时间和时区

2015-09-03
Linux

计算机中使用的时间是UTC时间(世界标准时间或世界协调时)。CentOS下的时区设置文件被编译好后保存在/usr/share/zoneinfo目录下,包含了大部分的城市和编码。

1ls /usr/share/zoneinfo

系统安装完成设置好时间之后,这些信息保存在/etc/localtime这个文件中,实际上这个文件是指向/usr/share/zoneinfo下某个文件的链接。当/etc/localtime不存在的时候,则系统使用UTC时间。

...

CentOS 7搭建ntp进行时间同步

2015-09-02
Linux

安装ntp组件 #

网络时间协议ntp是时间服务器的一种协议。在时间服务器工作时,其可利用不同的工作模式与其他服务器或用户端进行时间的调整,实现时间的同步。

使用ntp需要安装ntp服务组件:

1yum install -y ntpdate ntp
2
3
4systemctl start ntpdate
5systemctl start ntpd
6
7systemctl enable ntpd
8systemctl enable ntpdate

在ntpd服务进程启动的时候,可以使用ntpstat命令获取系统每次校正时间的间隔:

...

随便记点儿:缓存相关知识

2015-02-06

缓存失效策略 #

当缓存中缓存容量已满或数据因失效而需要更新时,就需要从缓存中去掉一些旧数据。 究竟应该去掉哪些数据由缓存的失效策略决定,以下是常见的缓存失效策略:

  • LRU(Least Recently Used):即最近最少使用,这种策略将优先淘汰最近被请求最少的缓存数据。在实现上缓存的数据有一个最后被访问的时间戳(随缓存命中更新为当前时间),最后被访问时间离当前时间最远的缓存数据优先被淘汰。
  • LFU(Least Frequently Used):即最少使用,这种策略将优先淘汰访问次数最少的缓存数据。在实现上被缓存的数据有一个hit值(随缓存命中递增),hit值最小的缓存数据优先被淘汰。
  • FIFO(First In First Out):即先进先出,判断数据被写入的时间,离当前时间最远的数据优先被淘汰。

使用nginx-module-vts监控Nginx虚拟主机状态

2015-02-05
Nginx

nginx-module-vts(https://github.com/vozlt/nginx-module-vts)是一个第三方的nginx module,使用它可以查看nginx各个vhost的通讯状态和统计数据,比较类似于haproxy自带的stats page。 这个nginx模块的下载地址为https://github.com/vozlt/nginx-module-vts/releases

编译安装这个模块:

1./configure ...... --add-module=/<thepath>/nginx-module-vts
2make & make install
3make upgrade

配置:

 1http {
 2# nginx vts module
 3 vhost_traffic_status_zone shared:vhost_traffic_status:10m;
 4    server {
 5		......
 6        location /vhost_status {
 7        	vhost_traffic_status_display;
 8            vhost_traffic_status_display_format html;
 9        }
10	......

访问页面/vhost_status即可。 更多内容可以查看Nginx Vhost Traffic Status Module

...

Golang 笔记:临时对象池sync.Pool

2015-02-03
Go

sync.Pool可以被看做是存放可被重用的值的容器,这个容器具有以下特性:可自动伸缩、高效、并发安全。 因为它的使用场景并不适用于诸如数据库连接池这类需要我们自己管理生命周期的资源对象的池化场景,所以一般把sync.Pool称为临时对象池(其实叫做临时对象缓存更合适),主要用来存放已经分配的但是暂时不需要使用的对象,在需要使用的时候再从临时对象池中取出。

...

编译安装Nginx Lua Module

2015-02-01
Nginx

使用lua-nginx-module可以把lua嵌入到nginx中,使用lua在nginx下开发一定的业务逻辑。

编译安装 #

首先编译安装LuaJIT。

LuaJIT使用JIT编译技术可以把Lua脚本直接编译成机器代码由CPU执行。

这里下载LuaJIT的源码。解压缩后进入源码目录:

1make install PREFIX=/usr/local/luajit

接下来下载ngx_devel_kitlua-nginx-module的源码。

...

© 2024 青蛙小白