自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

转载 kafka-mirror不稳定问题分析与解决方法

前段时间,线上环境的kafka多集群在采用mirror组件进行跨机房数据同步时,会偶尔出现hang住不稳定的情况:1. 现象 a. 线上出现返回包序号不一致的现象:"Correlationid for response (13502150) does not match request"而程序hang住,cpu飙高,同步服务停止工作 b. 发生平均频率:线上分3组grou...

2018-02-25 23:41:00 787

转载 线上问题备忘录

1.flume-cluster编 号描述现象方法1flume启动时元数据锁异常,导致无法启动Due to java.io.IOException: Cannot lock /filechannel/. The directory is already locked....

2017-02-07 16:20:00 292

转载 实时统一日志采集Flume平台化

针对原生Flume在生产环境中暴露的问题,在开源Flume1.6.0版本上做了深度定制和部门内部统一推广: 1. 与开源版本区别模块 Flume1.6 Flumex-Agent功能1.低侵入性:会对业务方日志文件重命名1.无侵入性...

2017-02-07 15:58:00 196

转载 日志结构合并树LSM代码解读

1. LSM树的由来 1.1. 索引结构特征   a. 哈希存储引擎: 是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。   b. B树存储引擎是B树: 不仅支持单条记录的增、删、读、改操作,还支持顺序扫描, 因此B树是传统关系型数据库中索引结构的不二人选。   但从技术角度:由于磁盘的(磁柱...

2016-03-13 19:19:00 248

转载 一致性Hash算法的理解

最近在使用集团内部的TimeTunnel时,查看了其订阅调度策略的背后原理,用到了一致性Hash技术,然后查阅了网上其相关的博客与资料,顺便说说自己的一些粗浅理解。 1. 应用场景 首先,如果从十几年前的名为“Consistent Hashing and Random Trees”论文中,可以看出一致性Hash算法的最初提出,是为了解决Web服务页面访问的Cache热点问...

2016-03-06 15:44:00 78

转载 跳跃表SkipList的理解

SkipList在各种开源引擎中用处普遍,例如redis的sortedset容器、luence里面的索引字典等均用到了skiplist。 1. SkipList 在数据结构里面,我们知道有两种基本数据逻辑结构:数组和链表。它们均有其各自的特点,数组(特别是有序数组),可以进行快速查询,但不便于删除操作;链表,可以进行快速的增删操作,但是又不便于查询。那有没可能存在一...

2015-12-06 23:01:00 100

转载 tfs主控与数据节点读写流程—源码解读

1. tfs节点的管理类介绍 1.1 数据节点 数据节点主要进行进行实际数据的存储与读写,其管理类是DataServer,其职责如下: 相关数据流的任务函数处理由handlePacketQueue函数完成,如下: //一个数据节点 class DataService { OpManager op_manager_; ...

2015-11-08 23:50:00 186

转载 缓存算法之LRU与LFU

1. LRU算法 1.1 背景 目前尽量由于摩尔定律,但是在存储硬件方面始终存在着差异,并且这种差异是不在同一数量级别的区别,例如在容量方面,内存<<外存;而在硬件成本与访问效率方面,内存>>外存。而目前互联网服务平台存在的特点:a. 读多写少,快速ms级响应,因此需要把数据搁在内存上;b. 数据规模巨大,长尾效应,由于数据规模巨大,只能把全量...

2015-11-08 18:47:00 146

转载 tfs主从nameserver节点容错性—源码解读

1 前言 在tfs集群服务里,nameserver采用HA架构:由heart agent维护着的nameserver的vip,对于客户端和数据节点来说,会直接和nameserver的vip沟通,所以至于后台有多少个nameserver和具体由那个nameserver提供服务是透明的。 另外nameserver的职责:维护了所有block数据的位置信息、元数据信息及其两者之...

2015-10-23 19:52:00 175

转载 tfs数据复制策略—源码解读

通常在下面两种情况下,会发生数据复制操作:1 由于节点故障导致该节点上的block数据均丢失 ;2有新增加的节点时,由于新旧节点上的磁盘利用率不平衡时。1 节点故障 在tfs里面,nameserver会启动心跳线程,定期扫描所有logicblock的状态信息(数据副本版本一致性、副本个数、磁盘空间利用率等)。例如:当一个block的空间利用率小于一个定阈值时,...

2015-10-23 19:29:00 135

转载 关于分布式文件存储系统问题的自我思考

1. 前言 分布式文件存储系统其作用主要有两个:其一存储海量的文档、图片、视频等blob类数据,其二作为分布式表格系统的持久化层,如 HDFS于HBase。流行的分布式文件存储系统有很多,如google的GFS、及其开源的实现版本HDFS和Facebook的Haystack等等。既然是分布式,肯定有多个机器甚至机房参与了,机器之间通过网络互连沟通;而又只要存在着沟通,由...

2015-10-23 19:15:00 128

转载 taobao-tbnet开源网络通讯框架

1.前言 网络通讯框架是业务服务平台高效、稳定运行的基础。而在今天盛行的分布式存储与计算集群里,高效、可靠的网络通讯框架更是保证各个集群节点间进行数据同步与消息沟通的重要基石。不同的语言均有许多开源网络框架,而流行的开源网络框架有libevent、netty等,下文通过简单分析taobao-tfs-common的基于epoll通讯模型的网络框架,来了解其主要的构成部分:...

2015-10-19 10:42:00 151

转载 任务池管理与执行器

1 前言 一个后台实时处理的业务平台,通常我们会根据数据的输入与输出,依据时间轴进行分解成不同阶段或不同粒度的逻辑任务,而每一个待处理的数据我们称为任务或者消息。任务之间的关系可以分为两类:a 上下游父子关系,b 可以并行运行的兄弟关系。具有上下游关系的任务集合具有逻辑或数据依赖关系,即上游任务执行完后,才能执行下游任务;具有兄弟关系的任务间逻辑上互不影响,可以并行运行。...

2015-10-19 10:31:00 240

转载 阻塞队列实现

0 前言 阻塞队列在生产业务的很多场景里,都有使用的需要。例如:在数据流式处理服务中,我们需要异步的执行上游逻辑a与下游逻辑b;在rpc网络通讯框架场景中,我们需要解耦网络读写线程与消息处理线程。总之, 阻塞队列是在不同职责的线程之间进行数据沟通的桥梁。在jdk里面有现成的BlockingQueue类,现在让我们看看一个C++版的实现吧:1 实现源码 1.1 ...

2015-10-19 10:13:00 153

转载 序列化容器—二进制编码与解码

0 前言 在rpc或分布式节点间的通讯框架里面,我们经常会有“业务数据与二进制流数据之间进行编码或解码转换”的场景要求,在jdk的nio框架里面有既有的ByteBuffer类满足此需求,那么在c++里面,同样我们简单看看,一个具有类似功能的类DataBuffer。1 实现机制 其实现机制:通过指针偏移指向同一块内存,分别表示内存的起始与结束偏移位置,分别表...

2015-10-19 09:59:00 151

转载 路网最优路径算法总结

前段时间,关于路网最优路径算法的专题我做了一次内部分享,感兴趣的朋友可以进行查看与下载, 链接如下: http://files.cnblogs.com/files/gisorange/%E8%B7%AF%E7%BD%91%E6%9C%80%E4%BC%98%E8%B7%AF%E5%BE%84%E7%AE%97%E6%B3%95%E6%A6%82%E8%BF%B0...

2015-09-27 19:12:00 582

转载 线上服务segment fault异常现象之一

今天运维在线上部署一套较成熟的服务于车载终端导航的http服务后,测试验证时,服务每次接收请求时进程居然闪退,着实惊讶了一把。记录感叹一下,线上问题无大小,但是往往由于一些细微的细节造成的。1. 现象 fastcgi load的http服务,在每次有请求打过来时,都会出现segment fault异常退出,dmesg查看如下:[2413269.76192...

2015-06-10 21:33:00 146

转载 路网最优路径算法之一分层搜索

1 背景 前面介绍了关于双向及启发式的搜索,它们均可以实现了效率的倍增。但是应用到长距离(例如武汉——杭州大于500公里)的搜索时,平均效率存在100ms级甚至s级的耗时,显然这样一个面对广大用户群的互联网服务引擎效率是不可接受的,那么有没有优化的方向可以实现数量级的提升? 但人类对效率与正确的极致追求也是不止境的。关于双向及启发式搜索,它们的优化初衷均是一致的:...

2015-03-29 16:54:00 849

转载 zookeeper部署和应用场景之一热备

1 zookeeper部署a. 下载程序包  wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gzb. 程序结构zookeeper    |---conf      |--zoo.cfg    |---bin      |--zkServer...

2015-03-22 22:50:00 77

转载 路网最优路径算法之一启发式搜索

1 Dijkstra描述与分析 1.1 算法描述 Dijkstra最短路径算法,具体地说,应该是一种单点到多点(one to many)的最短路径搜索算法,因为它从起点开始搜索时,总是优先搜索和展开当前离起点路径最短的节点,直至搜索到目标点时结束搜索。 有人说,Dijkstra算法是一种贪心的算法,因为每次搜到当前节点时,总是任性地判定“当前看来的局部最优解...

2015-03-22 22:12:00 662

转载 HDFS——数据备份与放置策略(转)

对于分布式文件系统来说,为了保证数据的高可用性和系统容错能力,往往会把同一数据块在多个节点上进行备份,那么如何分配这些复制数据的位置,不同的文件系统会有不同的策略。一、业界分析在介绍HDFS之前,先简单了解一些其它文件系统的放置策略:1. Lustre——一致性哈希环对于不同的数据备份,需要放到不同的节点上面,一种直观的想法就是利用Hash函数,这样可以把每个备份id对应...

2015-03-15 18:52:00 61

转载 HDFS——数据平衡策略(转)

Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点。当HDFS出现不平衡状况的时候,将引发很多问题,比如MR程序无法很好地利用本地计算的优势,机器之间无法达到更好的网络带宽使用率,机器磁盘无法利用等等。可见,保证HDFS中的数据平衡是非常重要的。在Hadoop中,包含一个Balancer程序,通过运行这个程序,可...

2015-03-15 18:51:00 109

转载 HDFS-——HA机制(转)

一、问题描述由于namenode 是HDFS的大脑,而这个大脑又是单点,如果大脑出现故障,则整个分布式存储系统就瘫痪了。HA(High Available)机制就是用来解决这样一个问题的。碰到这么个问题,首先本能的想到的就是冗余备份,备份的方式有很多种,前辈们设计的有元数据备份方案,secondary namenode以及avatarnode等方案。而这些方案中最有优势的自然是能...

2015-03-10 23:51:00 80

转载 HDFS——数据可靠性设计实现(转)

1. 安全模式HDFS 刚刚启动时,NameNode 会进入安全模式(safe mode)。处于安全模式的NameNode不能做任何的文件操作,甚至内部的副本创建也是不允许的。NameNode 此时需要和各个DataNode 通信,获得DataNode 保存的数据块信息,并对数据块信息进行检查。只有通过了NameNode 的检查,一个数据块才被认为是安全的。当认为安全的数据块所占的比...

2015-03-10 23:39:00 174

转载 租约机制(转)

背景和介绍缓存是计算机里广泛使用的一种技术,对降低读取延迟、网络流量和服务器负载都非常有效,但也带来了一致性(Consistency)的问题。所谓一致就是客户端总能读到最新的数据,使用缓存后有可能服务器端的数据已经被修改,但客户端仍然从缓存中读取陈旧的数据。为了保证一致性,有两种常见的解决办法,第一种是轮询(Polling),即每次读取数据时都先询问服务器数据是不是最新的,如果不是就...

2015-03-10 23:33:00 89

转载 jstorm单机部署和实时gps点统计实践

1 安装zookeeper1.1 下载 wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz1.2 配置 配置zookeeper参数zoo.cfg,步骤如下: a cp opt/zookeeper-3.4.6/conf/zoo_sample.cfg opt...

2015-02-09 13:39:00 112

转载 关于工程师晋升答辩的思考

不同的互联网公司里面,研发工程师的晋升方式也许各异,但通常会有答辩这个环节,下面列举下我关于工程师答辩的思考: 临场发挥 1. PPT的制作 a. 开篇介绍时,避免“只见树木,不见森林”   开篇介绍项目时,尽管每位同学所做工作属于团队里的一部分,最好能写出团队项目的整体结构,甚至可以突出自己所做项目在整个业务流程中所处的重要位置。 b. 突出难点...

2014-10-19 12:43:00 2470

转载 zookeeper简介(转)

一直对zookeeper的应用和原理比较迷糊,今天看一篇文章,讲得很通透,分享如下:场景一有这样一个场景:系统中有大约100w的用户,每个用户平均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最多3亿份邮件需要下载到服务器中(不含附件和正文)。用20台机器划分计算的压力,从多个不同的网路出口进行访问外网,计算的压力得到缓解,那么每台机器的计算压力也不会很大...

2014-08-25 22:59:00 67

转载 实时流处理服务OutOfMemoryError现象之一

今天对一个实时流数据处理服务进行压力测试,很快发生OutOfMemoryError错误,分别记录堆占用大小情况如下:1. 原系统堆占用大小走势 2. 注释一行log后堆占用走势 发现注释了一行...

2014-05-15 18:58:00 96

转载 路网最优路径算法之一单向和双向搜索

前段时间和导航部门同事聊天,大致了解了目前公司的路径引擎,发现效率还是很低的。尽管最近几年没从事这方向的工作,但仍很表惊讶。所以分享个人对路网最优路径算法的认识,做个抽象的总结。1 前言 关键字 1.1 路网 网络有很多种如社交网络、互联网络、交通路网等等。但是路网有它自己的特点:1、每个节点的度数不高 2、边有等级的划分 3、路网更新相对缓慢。正...

2014-03-29 19:44:00 710

转载 实时大规模数据的订阅和推送服务

1. 背景 服务后台实时收集千万级别在线终端、全国近400个城市的出租车、手机和pad等移动终端的位置点gps信息,然后根据gps所在城市区域,持久化并推送分发给不同的订阅用户。 其业务逻辑图如下: 1.1 需求特征 a 实时性(gps点本身具有实时性的特征,例如打车服务,需...

2014-03-05 01:00:00 387

转载 协同过滤算法——推荐引擎比你更了解你自己

1. 背景 在数据爆炸我们每天被数据困扰的今天,数据量发生指数级的增长,每一年产生的大数据是过去历史的总和。那么在茫茫数据大海中,对于数据生产者,怎么将自己的信息精准投放给所需的用户呢?而对于数据消费者,怎么从海量数据中快速获取自己需要的信息呢?这时推荐引擎应运而生。 推荐应用其实已经走进我们的生活,典型的推荐应用: a. 豆瓣网站 豆瓣根据我的读书列表,及相应评论,为我推荐出...

2014-01-12 18:32:00 138

转载 利用netty实现支持高并发的Tcp短连接接收服务

如果你对Netty有所了解,我们利用Netty写Tcp服务时,通常会继承SimpleChannelUpstreamHandler类,重写messageReceived函数进行数据的接收,如下就是个简单的tcp短连接服务样例:public class TelnetServerHandler extends SimpleChannelUpstreamHandler {...

2013-12-03 11:27:00 1317

转载 成长

今天和一个90后的表弟打电话。平时一直和他没有啥联系,才了解他近况,作为表哥表示惭愧。他最近开始实习,做汽车行业,并且毕业后也想从事汽车行业。我很开心,觉得他找到自己专业并且喜欢的事情,也鼓励他。虽然现在待遇不高,才能维持租房和伙食,但是可以学习的东西很多,例如为人处世、人脉积累,这些对个人的成长和未来职业的发展挺有好处的,另外也唠叨他下班后多看些书。 现在也快毕业了...

2013-11-28 00:01:00 66

转载 搬家

今天帮一在国企工作的同学搬行李,暂时搁在我这儿。由于时间仓促,他下周三得要离开工作三年多的北京,去武汉长期出差,甚至可能留在武汉。 记得前些天,他还拉我喝酒吐槽:他无意发现了一个同事的待遇比他高,但他认为他自己干的活更重要,表现也更出色。然后说开始寻找更好的工作机会,也纠结于自己未来的归属,是长期驻守帝都还是选择离开。 凑巧没过几天,他领导找他谈话,表达了对他的认可...

2013-11-27 23:54:00 70

转载 两个精彩的比喻

我们知道,计算机中有很多概念并不容易理解,有些时候一个好的比喻能胜过很多句解释。下面两个是我看到的两个很精彩的比喻,拿出来和大家分享一下。第一比喻是关于吞吐量(throughput)和延迟(latency)的。如果你要搞网络性能优化,这两个概念是你必须要知道的,它们看似简单实则不是。我相信包括我在内的很多人都曾经认为大的吞吐量就意味着低延迟,高延迟就意味着吞吐量变小。...

2013-11-25 17:49:00 56

转载 客户端1对n服务端的通讯实现

1背景 随着批量处理、流式计算逐渐盛行,我们的后台应用服务也不甘寂寞,逐渐升级,通常也需要集群来同时协作。然而,集群相互之间的通讯逻辑成为了多台机器同时协作的基本模块。本文简单介绍yahoo-s4节点之间通讯机制的client实现。 可能你会说,对每个节点建立一个socket,进行通讯不就ok了吗?的确是这样子的,但是有大量的socket时,怎么维护呢,怎么保证数据的异...

2013-11-20 13:59:00 99

转载 磁盘满时,redis客户端频抛出ConnectionException异常

1. 原因 当磁盘满时,程序在调用Pool.getResource(),从jedis实例池pool里借用实例时,出现连接异常,没有可用的jedis实例,异常log如下:2013-11-17 21:59:37,155 ERROR [TransportFrameEncoderService:97] main - <redis.clients.jedis....

2013-11-19 19:04:00 117

转载 关于jdk1.7的SimpleDateFormat类线程不安全

项目中,经常会用到日期操作。今天在项目中,运行发现多线程调用SimpleDateFormat,抛出异常的情况,而且是选择性的抛出,实际环境很难复现。 我们模拟以下2种场景: a、单实例场景1: final DateFormat df = new SimpleDateFormat("yyyyMMdd,HHmmss"); ExecutorService ts ...

2013-11-19 18:58:00 111

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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