自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fei的专栏

C/C++/Go Linux/Web 全栈之路

转载 一致性哈希算法及其在分布式系统中的应用

摘要 本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用...

2016-01-17 17:10:49

阅读数 480

评论数 0

转载 Consistent Hashing一致性哈希库libconhash的使用与实现

闲着没事看了看一致性哈希,找了个开源库libconhash看看如何实现。 整过过程非常清晰,代码也非常易懂,注释也非常全,带sample,简直就是开源库的典范!! libconhash的sourceforge下载地址 From wikipedia 一致哈希 是一种特殊的哈希算法...

2016-01-17 17:52:09

阅读数 1948

评论数 1

转载 基于一致性hash算法(consistent hashing)的使用详解

1 基本场景 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ; hash(object)%N 一...

2016-01-17 16:26:53

阅读数 887

评论数 0

转载 基于一致性hash算法 C++语言的实现详解

在《基于一致性hash算法(consistent hashing)的使用详解》一文中已经介绍了一致性hash的基本原理,本文将会对其具体实现细节进行描述,并用c++语言对一致性hash进行了简单的实现。  一致性hash算法实现有两个关键问题需要解决,一个是用于结点存储和查找的数据结构的选择...

2016-01-17 16:22:36

阅读数 618

评论数 0

转载 Upgrading from ZeroMQ v2.2 to ZeroMQ v3.2

Compatible Changes   These changes don't impact existing application code directly: Pub-sub filtering is now done at the publisher ...

2016-01-14 23:19:10

阅读数 465

评论数 0

转载 分布式文件系统下的本地缓存

转载请说明出处:http://blog.csdn.net/cywosp/article/details/23970017     在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统...

2016-01-13 22:34:42

阅读数 930

评论数 0

转载 leveldb项目实践

转载请说明出处:http://blog.csdn.net/cywosp/article/details/20746879     leveldb是Google公司开源的高性能Key-Value数据库,在很多开源的项目中就有使用,例如:Chromium,淘宝的Tair,SSDB等。...

2016-01-13 22:32:22

阅读数 686

评论数 0

转载 leveldb资料整理

leveldb介绍  http://code.google.com/p/leveldb/  http://en.wikipedia.org/wiki/LevelDB  http://highscalability.com/blog/2011/8/10/leveldb-fast-and-lig...

2016-01-13 22:31:17

阅读数 377

评论数 0

转载 Nginx、LVS及HAProxy负载均衡软件的优缺点详解

Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下。 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于10...

2016-01-13 22:27:19

阅读数 370

评论数 0

转载 leveldb之简单测试

1. 最新版下载地址https://code.google.com/p/leveldb/downloads/list 2. 放到linux系统中解压并编译,其实编译leveldb很简单,解压下载包之后进入目录直接执行make即可。编译完成之后会在当前目录生成几个文件:   ...

2016-01-13 22:25:54

阅读数 1074

评论数 0

转载 负载均衡调度算法大全

阅读目录 轮循(Round Robin)加权轮循(Weighted Round Robin)最少连接数(Least Connection)最少连接数慢启动时间(Least Connection Slow Start Time)加权最少连接(Weighted Least Connection)...

2016-01-13 22:20:29

阅读数 2755

评论数 0

转载 Consistent hashing

What is libconhash libconhash is a consistent hashing library which can be compiled both on Windows and Linux platforms, with the following featur...

2016-01-13 22:18:08

阅读数 424

评论数 0

转载 五分钟理解一致性哈希算法(consistent hashing)

转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179     一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。...

2016-01-13 22:10:19

阅读数 497

评论数 0

转载 我所熟悉的网站负载均衡技术

DNS轮循   DNS轮循是指将相同的域名解释到不同的IP,随机使用其中某台主机的技术。但其具有明显的缺点:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。DNS负载均衡采用的是简单的...

2016-01-13 21:41:34

阅读数 395

评论数 0

转载 C++中重载、重写(覆盖)和隐藏的区别实例分析

这篇文章主要介绍了C++中重载、重写(覆盖)和隐藏的区别,是C++面向对象程序设计非常重要的概念,需要的朋友可以参考下 本文实例讲述了C++中重载、重写(覆盖)和隐藏的区别,对于C++面向对象程序设计来说是非常重要的概念。具体分析如下: 1.重载:重载从overload翻译过来,是指同一...

2016-01-10 16:00:03

阅读数 349

评论数 0

转载 zmq中zmq_poll()函数介绍

zmq中zmq_poll()函数介绍 功能: 查看指定的多个socket上哪些socket发生了指定的事件, 事件有: ZMQ_POLLIN: 有消息到来 ZMQ_POLLOUT: 当前无阻塞可以发送消息 ZMQ_POLLERR: 只对标准socket有效, 对zmq socket无效...

2016-01-09 21:05:38

阅读数 2791

评论数 0

转载 C++拷贝构造函数(深拷贝,浅拷贝)

C++拷贝构造函数(深拷贝,浅拷贝) 对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=88; int b=a;  而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。  #include io...

2016-01-09 20:38:15

阅读数 362

评论数 0

原创 TCP Socket和ZeroMQ socket的区别

• ZeroMQ sockets are asynchronous. zmq套接字是异步的 • They may implement particular patterns. 可以实现特定模式 • TCP sockets are one-to-one whereas ZeroMQ sock...

2016-01-09 20:34:52

阅读数 3977

评论数 0

转载 深拷贝和浅拷贝

C++中对象的复制就如同“克隆”,用一个已有的对象快速地复制出多个完全相同的对象。一般而言,以下三种情况都会使用到对象的复制: (1)建立一个新对象,并用另一个同类的已有对象对新对象进行初始化,例如: class Rect { private: int width; int hei...

2016-01-09 20:07:11

阅读数 303

评论数 0

转载 select、poll、epoll使用小结

Linux上可以使用不同的I/O模型,我们可以通过下图了解常用的I/O模型:同步和异步模型,以及阻塞和非阻塞模型,本文主要分析其中的异步阻塞模型。 一、select使用 这个模型中配置的是非阻塞I/O,然后使用阻塞select系统调用来确定一个I/O描述符何时有操作。使用select调用...

2016-01-07 22:40:08

阅读数 459

评论数 0

原创 【leetcode】107. Binary Tree Level Order Traversal II

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root)...

2016-01-05 22:42:29

阅读数 480

评论数 0

转载 const、volatile、mutable的用法

const修饰普通变量和指针 const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含...

2016-01-03 23:25:30

阅读数 390

评论数 0

转载 STL vector用法介绍

介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了...

2016-01-03 23:22:51

阅读数 319

评论数 0

原创 [leetcode]101.Symmetric Tree

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For example, this binary tree is symmetric: 1 ...

2016-01-03 23:09:36

阅读数 303

评论数 0

转载 malloc 和alloc及calloc的区别

malloc() 函数和calloc()函数的主要区别是前者不能初始化所分配的内存空间,而后者能。如果由malloc()函数分配的内存空间原来没有被使用过,则其中 的每一位可能都是0;反之,如果这部分内存空间曾经被分配、释放和重新分配,则其中可能遗留各种各样的数据。也就是说,使用malloc()函...

2016-01-01 16:21:32

阅读数 455

评论数 0

转载 二维数组和二维指针

二维数组和二维指针 题号 题目 答案 解析 1 以下程序的输出结果是______。 main() {  int  i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];    f...

2016-01-01 15:54:52

阅读数 2554

评论数 0

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