MONGODB的BASIC INDEXES 和 COMPOUND INDEXES 研究

前几天看到一个关于 MongoDB 深入索引的PPT

MongoDB Indexing: The Details

仔细的从头看到尾, 里面有个关于Compound Indexes的Range and Equality的讲解,在ppt第129页,重新回顾下这个例子.向一个collection中插入 9 条数据,像下面这样:


> db.good.find()
{ "_id" : ObjectId("4e8d629d8ad8bdf2ed6c1990"), "x" : 1, "y" : "b" }
{ "_id" : ObjectId("4e8d62a38ad8bdf2ed6c1991"), "x" : 3, "y" : "d" }
{ "_id" : ObjectId("4e8d62ad8ad8bdf2ed6c1992"), "x" : 4, "y" : "g" }
{ "_id" : ObjectId("4e8d62b28ad8bdf2ed6c1993"), "x" : 5, "y" : "c" }
{ "_id" : ObjectId("4e8d62ba8ad8bdf2ed6c1994"), "x" : 6, "y" : "a" }
{ "_id" : ObjectId("4e8d62c18ad8bdf2ed6c1995"), "x" : 7, "y" : "e" }
{ "_id" : ObjectId("4e8d62ce8ad8bdf2ed6c1996"), "x" : 8, "y" : "c" }
{ "_id" : ObjectId("4e8d62d38ad8bdf2ed6c1997"), "x" : 9, "y" : "f" }
{ "_id" : ObjectId("4e8d719a6cee6416a5a75a43"), "x" : 5, "y" : "d" }

SSL基本配置

为了可以正常使用 https 地址访问 Rancher 服务器,您需要设置代理的证书卸载功能。同时,我们提供了一些配置 NGINX 或 Apache 代理的例子,当然,您也可以使用其他工具。

需求

除了典型的 Rancher 服务器 需求 您还需要:

  • 有效的 SSL 证书:如果您的证书不包含在 Ubuntu CA 中,请参照 自签名证书说明
  • 配置 DNS 记录。

启动 Rancher 服务器

在我们的示例配置方案中,所有流量将通过代理被发送到 Rancher 服务器的 Docker 容器中。也有替代的配置方案可以实现,但这个示例相对比较简单。
启动 Rancher 服务器,这里我们添加了选项 --name=rancher-server 用来连接代理容器和 Rancher 服务器容器。

1
$ sudo docker run -d --restart=always --name=rancher-server rancher/server

注意:

在我们的示例中,我们假设代理运行在单独的容器中。如果您的代理计划由主机提供服务,需要将 Rancher 容器的 8080 端口映射至本地主机,可以向 docker run 命令添加参数 -p 127.0.0.1:8080:8080 实现。

如果您想使用现有的 Rancher 实例,您可以基于现有的 Rancher 实例创建一个新的 Rancher 实例。

多节点高可用(HA)

基于 Rancher v1.0.1

需求

  • 多节点的HA配置请参照单一节点需求
    • 节点需要开放的端口
      • 全局访问:TCP 端口22,80,443,18080(可选:用于在集群启动前 查看并管理栈
      • 节点间连接:
        • UDP 端口:500,4500
        • TCP 端口:2181,2376,2888,3888,6379
  • MySQL 数据库
    • 至少 1GB 内存
    • 每 Rancher Server 节点 50 连接(如:一个 3 节点的安装至少需要支持 150 连接)
  • 外部负载均衡器

建议使用更大的部署

  • 每个 Rancher Server 节点应该有 4GB 或 8GB 可用内存,意味着至少需要 8GB 或 16GB 的物理内存
  • MySQL 数据库应该使用高速的磁盘
  • 对于真正的高可用,建议使用复制的 MySQL 并做适当的备份。由于存在事物锁,可以选择 Galera 或强制写入单节点的方式。

Zabbix邮件报警脚本

Zabbix安装教程请移步 Zabbix Install
zabbix邮件报警配置步骤说明:

1、准备一个发送邮件的脚本

2、修改zabbix配置文件中指定的脚本路径

3、关联脚本名称

4、用户设置收件邮箱与报警时间

5、配置报警触发器

6、添加多个用户,同时给多个人发邮件

7、邮件接收测试

1、发送邮件的脚本

单节点服务器安装

Rancher 使用基于 Docker 容器的部署方式。仅需简单的启动两个容器即可运行。一个容器用于管理 Rancher 服务,其他容器使用代理的方式管理主机或节点。

需求

  • 任何支持 Docker 1.10.3 的 Linux 发行版。而 RancherOS,Ubuntu,RHEL/CentOS 7 经过了更多测试
  • 1GB 内存
  • MySQL 服务,并且设置 max_connections > 150

启动 Rancher 服务器

在安装了 Docker 的服务器上可以很简单的使用命令启动 Rancher 服务

1
$ sudo docker run -d --restart=always -p 8080:8080 rancher/server
RANCHER UI

Rancher 的 UI 和 API 将开放 8080 端口。Docker 镜像下载后,还需要 1-2 分钟才可以成功启动并显示页面。

访问以下地址:http://<SERVER_IP>:8080,这里<SERVER_IP>是指运行 Rancher 服务并可用于访问的IP地址。

First Of My Hexo Blog

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

以上是hexo第一篇默认内容,hexo出自台湾大学生tommy351之手,是由Node.js驱动的一款快速、简单且功能强大的博客框架。Node.js是一个可以快速构建网络服务及应用的平台 ,nvm是Node.js的版本控制工具。

安装Hexo

平台:Centos6.5 git1.8

1
2
3
4
5
6
7
8
9
# 安装nvm
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

$ git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
$ echo "export NVM_DIR="$HOME/.nvm"" >> ~./bashrc && echo "[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm" >> ~./bashrc
# 使用Node.js
$ nvm install v5.10.1 && nvm alias default v5.10.1 && nvm use 5.10.1

下面安装hexo及相关插件: