自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 Kafka入门经典教程

问题导读 1.Kafka独特设计在什么地方? 2.Kafka如何搭建及创建topic、发送消息、消费消息? 3.如何书写Kafka程序? 4.数据传输的事务定义有哪三种? 5.Kafka判断一个节点是否活着有哪两个条件? 6.producer是否直接将数据发送到broker的lea...

2015-07-19 23:36:21 100886 17

转载 ab常见问题汇总

测试服务器ab 被测试服务器apache apache版本2.2.25 问题一、socket: Too many open files (24) 解决(在测试服务器操作): 1、查看当前系统设置:open files (-n) 1024为102...

2015-07-14 16:42:36 1476 0

转载 GridFS:基于MongoDB的分布式文件存储系统

基本原理 GridFS是MongoDB之上的分布式文件系统,其利用了MongoDB的分布式存储机制并通过MongoDB来存储文件数据和文件元数据,兼具文档型数据库和文件系统的优势。GridFS是当前大数据潮流和复杂数据分析需求的产物。 简单地来说,GridFS通过将文件数据和文件元数据...

2015-07-08 11:32:55 4010 0

转载 thrift使用实例

thrift是一个RPC框架,最初由Facebook开发,后来移交apache组织管理。这里用thrift写了一个最简单的例子,服务器和客户端都用java,供大家参考。 0. 下载thrift 首先需要下载thrift编译器,它把thrift定义编译成对应语言。在thrift官网上有下...

2015-07-06 17:57:26 2661 0

转载 Kafka深度解析

背景介绍 Kafka简介   Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输支持Kafka ...

2015-07-02 16:39:46 1698 0

转载 Apache Kafka —一个不同的消息系统

简介 Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。 Apache Kafka与传统消息系统相比,有以下不同: 它被设计为一个分布式...

2015-07-02 10:44:59 2191 0

转载 RocksDB介绍:一个比LevelDB更彪悍的引擎

关于LevelDB的资料网上还是比较丰富的,如果你尚未听说过LevelDB,那请稍微预习一下,因为RocksDB实际上是在LevelDB之上做的改进。本文主要侧重在架构上对RocksDB对LevelDB改进的地方做个简单介绍并添加一些个人的看法,更详细的信息读者可参考其官网:http://rock...

2015-07-01 18:27:12 3306 0

转载 8天学通MongoDB——第八天 驱动实践

作为系列的最后一篇,得要说说C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者, 因为提供了丰富的linq操作,相当方便。   官方驱动:https://github.com/mongodb/mongo-csharp-driver/d...

2015-07-01 13:43:28 574 0

转载 8天学通MongoDB——第七天 运维技术

这一篇我们以管理员的视角来看mongodb,作为一名管理员,我们经常接触到的主要有4个方面: 1.  安装部署 2.  状态监控 3.  安全认证 4.  备份和恢复, 下面我们就一点一点的讲解。   一:安装部署         我之前的文章都是采...

2015-07-01 13:42:00 657 0

转载 8天学通MongoDB——第六天 分片技术

在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存 就吃不消了,针对这样的场景我们该如何应对。   一:分片      mongodb采用将集合进行拆分,然后将拆分的数据均摊到几个片上的一...

2015-07-01 13:40:26 687 0

转载 8天学通MongoDB——第五天 主从复制

从这一篇开始我们主要讨论mongodb的部署技术。     我们知道sql server能够做到读写分离,双机热备份和集群部署,当然mongodb也能做到,实际应用中我们不希望数据库采用单点部署, 如果碰到数据库宕机或者被毁灭性破坏那是多么的糟糕。   一:主从复制 1: 首先看看模型图...

2015-07-01 13:37:41 683 0

转载 8天学通MongoDB——第四天 索引操作

这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅。     好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们 又会花费50%的时间在R上面,因为Read操作对用户来说是非常敏感的,处理不好就...

2015-07-01 13:35:50 655 0

转载 8天学通MongoDB——第三天 细说高级操作

今天跟大家分享一下mongodb中比较好玩的知识,主要包括:聚合,游标。 一: 聚合       常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce。 count         count是最简单,最容易,也是最常用的聚合工具,它的使用跟...

2015-07-01 13:32:51 643 0

转载 8天学通MongoDB——第二天 细说增删查改

看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然 傻眼了,擦,竟然开启不了,仔细观察“划线区域“的信息,发现db文件夹下有一个类似的”lock file”阻止了mongodb的开启,接下来我们要做的就 是干掉它,...

2015-07-01 13:31:26 955 0

转载 8天学通MongoDB——第一天 基础入门

关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合” 就是对应关系数据库中的“表”,“文档”对应“行”。   一: 下载       上MongoDB官网 ,我们发现有32bit和64bit,这个就要...

2015-07-01 13:30:01 1826 0

转载 经典漫画讲解HDFS原理

分布式文件系统比较出名的有HDFS  和 GFS,其中HDFS比较简单一点。本文是一篇描述非常简洁易懂的漫画形式讲解HDFS的原理。比一般PPT要通俗易懂很多。不难得的学习资料。 1、三个部分: 客户端、nameserver(可理解为主控和文件索引,类似linux的inode)、datano...

2015-06-29 11:50:16 1469 0

转载 从数据库层面理解:随机 I/O & 顺序 I/O

在谈这俩概念前、先来说说 大I/O vs. 小I/O      通常、我们把  的I/O认为是小I/O、而 >=32KB 的I/O认为是大I/O      了解I/O的大小、影响到后期对缓存、RAID类型、LUN的一些属性的调优             当前大多数数据库使用的都是传统...

2015-06-12 12:00:59 3876 1

转载 神秘的40毫秒延迟与 TCP_NODELAY

最近的业余时间几乎全部献给 breeze 这个多年前挖 下的大坑—— 一个异步 HTTP Server。努力没有白费,项目已经逐渐成型了, 基本的框架已经有了,一个静态 文件模块也已经实现了。 写 HTTP Server,不可免俗地一定要用 ab 跑一下性能,结果一跑不打紧,出现了一个困扰了...

2014-12-05 11:26:57 1795 0

转载 在Mac下搭建Docker并共享文件

在Mac OS X上安装docker 这个官网上就有,请参考http://docs.docker.io/installation/mac/ 挂载主机磁盘 - 共享文件 [Mac] 安装osxfuse和sshfs, 下载地址: http://osxfuse.github.io ...

2014-12-02 17:05:17 7094 0

转载 Docker使用Link在容器之间建立连接

在使用Docker的时候我们会常常碰到这么一种应用,就是我需要两个或多个容器,其中某些容器需要使用另外一些容器提供的服务。比如这么一种情况:我们需要一个容器来提供mysql的数据库服务,而另外两个容器作为客户端来连接使用mysql数据库服务。下面我们就来看看Docker是怎样通过Link来实现这种...

2014-11-29 22:15:38 1070 0

转载 Docker创建MySQL容器

本文目的是创建一个MySQL的image,并且在新创建出来的容器里自动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个目录并在目录下创建一个Dockerfile,文件内容如下 FROM centos:centos6 MAINTAINER Fanbin K...

2014-11-29 22:07:12 4749 0

转载 Docker使用Dockerfile创建支持ssh服务自启动的容器镜像

1. 首先创建一个Dockerfile文件,文件内容如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # 选择一个已有的os镜像作为基础 FROM centos:centos6   # 镜像的作者 MAI...

2014-11-29 21:46:47 1329 0

转载 Docker创建支持ssh服务的容器和镜像

1. 这里使用的centos作为容器,所以首先下载centos的images 1 sudo docker pull centos 2. 下载后运行一个centos的容器,这里使用centos6作为我测试的容器 1 sudo docker run ...

2014-11-29 21:45:05 682 0

转载 __thread关键字

__thread是GCC内置的线程局部存储设施,存取效率可以和全局变量相比。__thread变量每一个线程有一份独立实体,各个线程的值互不干扰。可以用来修饰那些带有全局性且值可能变,但是又不值得用全局变量保护的变量。        __thread使用规则:只能修饰POD类型(类似整型指针的...

2014-11-21 15:18:41 7133 0

转载 CPU绑定和CPU亲和性

将进程/线程与cpu绑定,最直观的好处就是提高了cpu cache的命中率,从而减少内存访问损耗,提高程序的速度。我觉得在NUMA架构下,这个操作对系统运行速度的提升有较大的意义,而在SMP架构下,这个提升可能就比较小。这主要是因为两者对于cache、总线这些资源的分配使用方式不同造成的,NUMA...

2014-10-11 18:51:04 1979 0

转载 Linux内核4级页表的演进

Linux内存管理中core VM代码中,关于页表(page tables)管理的代码是个重点,是虚拟内存(Virtual Memory, VM)的基石,本文探讨Linux的页表实现及发展过程。 页表概览 在虚拟内存中,页表是个映射表的概念, 即从进程能理解的线性地址(linear a...

2014-10-10 09:18:28 7442 0

转载 KVM 内存虚拟化及其实现

概述 KVM(Kernel Virtual Machine) , 作为开源的内核虚拟机,越来越受到 IBM,Redhat,HP,Intel 等各大公司的大力支持,基于 KVM 的开源虚拟化生态系统也日益完善。而实现 KVM 虚拟化,使客户机高效地、安全地使用宿主机的内存资源,就必须实现内存的...

2014-10-06 14:15:45 1541 0

转载 虚拟化原理

1、虚拟化概念(Virtualization) 虚拟化是值计算机元件在虚拟的基础上运行,用逻辑表示资源,摆脱物理的限制。虚拟化在系统中加入一个虚拟化层,虚拟化层将下层资源封装,抽象为另一种形式的资源,提供给上层使用。虚拟化可以将一份资源抽象为多份,也可以将多份资源抽象成一份(通常为前者)。 在...

2014-10-04 18:22:29 1435 0

转载 Docker 和一个正常的虚拟机有何区别?

问:  我多次重读Docker.io文档,希望搞明白Docker.io和一个完全的虚拟机的区别。Docker是如何做到提供一个完整的文件系统,独立的网络环境等等这些功能,同时还没有如此庞大?  为什么部署软件在一个docker镜像(image)比部署在一致的生产环境上要容易?  ...

2014-09-27 22:45:03 856 0

转载 深入浅出Docker(一):Docker核心技术预览

投稿 关于我们 合作伙伴 欢迎关注我们的: InfoQ - 促进软件开发领域知识与创新的传播 登录 En | 中文 | 日本 | Fr | Br 482,381 八月 独立...

2014-09-27 22:31:46 879 0

原创 职责链模式(C语言实现)

一. 概述 职责链模式: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 二. 举个例子 员工要求加薪 公司的管理者一共有三级:总经理、总监、经理,如果一个员工要求加...

2014-09-27 18:37:30 1822 0

原创 观察者模式(C语言实现)

一. 概述 Observer 模式要解决的问题为:建立一个一(Subject)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这个“一”的多也能够同步改变。 Sbuject 相当于通知者,它提供依赖于它的观察者Observer 的注册(Attach)和注销(Detach...

2014-09-27 12:31:52 5340 1

转载 使用monitor command监控QEMU运行状态

使用 monitor command 监控 QEMU 运行状态 在虚拟化的研究领域,QEMU 有着举足轻重的地位。2007 年 2 月发布的 Linux 2.6.20 内核中,集成了 KVM 作为其虚拟化的具体实现。而 KVM 是基于 QEMU 并且利用 CPU 的辅助虚拟化特性而略加修改而...

2014-09-26 11:49:46 1545 0

转载 用qemu-nbd实现mount虚拟硬盘到Host上的功能

qemu-nbd在有的系统上叫kvm-nbd,qemu-nbd-xen等。基本上都一样啦。        用qemu-nbd实现mount虚拟硬盘到Host上的功能,需要这么做:       rmmod nbd       modprobenbd max_part=8   ...

2014-09-26 11:17:55 1299 0

转载 【虚拟化实战】VM设计之一vCPU

作者:范军 (Frank Fan) 新浪微博:@frankfan7 虚拟机需要多少个vCPU呢?是不是个数越多性能越好呢?这方面存在着很多误区。给VM配置CPU资源的时候,要精打细算才能最大可能的利用已有资源,来满足商业应用的需要。有的情况下为某个VM设置过多vCPU数目,反而会造成该应能的...

2014-09-25 21:46:39 3993 0

原创 QEMU ARM异常处理流程

precise exception必须考虑暂存器和内存,其中我理解的暂存器为CPUState,在二进制翻译中,我们关注的是guest的precise exception。因此必须确保当guest代码发生异常时,guest的暂存器(CPUState)和内存必须满足precise exception的...

2014-09-25 17:24:17 1804 0

原创 pid and lock files

pid文件用于记录程序启动时系统分配给他们的pidhao

2014-09-25 09:18:04 738 0

转载 qemu中daemonize为什么要两次fork

函数void os_daemonize(void) 将当前进程变成后台进程即放弃终端。一开始不理解为什么要两次fork,后来查网上资料得知,两次fork是为了防止第一个子进程打开终端。首次fork使父进程退出,子进程继承了父进程的进程组ID,但具有一个新的进程ID,这就保证了子进程不是一个进程组的...

2014-09-24 22:23:21 1391 0

转载 C结构体之位域(位段)

有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域...

2014-08-22 10:12:58 648 0

原创 模板模式 (C语言实现)

一. 问题 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的。Template提供了这种情况的一个实现框架。 二. 模式 Template 模式是采用继承的方式实现这一点:将逻辑...

2014-06-19 23:36:09 2021 0

提示
确定要删除当前文章?
取消 删除