君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
  1057 随笔 :: 381 文章 :: 141 评论 :: 169万 阅读

03 2015 档案

摘要:当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 ... 阅读全文
posted @ 2015-03-31 02:50 刺猬的温驯 阅读(230) 评论(0) 推荐(0) 编辑

摘要:HashMap是一种十分常用的数据结构,作为一个应用开发人员,对其原理、实现的加深理解有助于更高效地进行数据存取。本文所用的jdk版本为1.5。使用HashMap《Effective JAVA》中认为,99%的情况下,当你覆盖了equals方法后,请务必覆盖hashCode方法。默认情况下,这两者会... 阅读全文
posted @ 2015-03-29 18:21 刺猬的温驯 阅读(279) 评论(0) 推荐(0) 编辑

摘要:在实际的工作环境下,许多人会遇到海量数据这个复杂而艰巨的问题,它的主要难点有以下几个方面:一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至 过亿,那不是手工能解决的了,必须通过工具或者程序进行处... 阅读全文
posted @ 2015-03-29 05:47 刺猬的温驯 阅读(360) 评论(0) 推荐(0) 编辑

摘要:Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。一. 实例 为了说明Bloom Filter存在的重要意义,举一个实例: 假设要你写一个网络蜘蛛(web crawler)... 阅读全文
posted @ 2015-03-29 04:43 刺猬的温驯 阅读(237) 评论(0) 推荐(0) 编辑

摘要:Bloom Filter的中文翻译叫做布隆过滤器,是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。如文章标题所述,本文只是做简单介绍,属于... 阅读全文
posted @ 2015-03-29 04:28 刺猬的温驯 阅读(3112) 评论(0) 推荐(2) 编辑

摘要:Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,B... 阅读全文
posted @ 2015-03-29 03:57 刺猬的温驯 阅读(419) 评论(0) 推荐(0) 编辑

摘要:日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有:根据关键字查询日志详情监控系统的运行状况统计分析,比如接口的调用次数、执行时间、成功率等异常数据自动触发消息通知基于日志的数据挖掘很多团队在日志方面可能遇到的一些问题有:开发人员不能登录线上服务器查看详... 阅读全文
posted @ 2015-03-24 02:52 刺猬的温驯 阅读(1957) 评论(0) 推荐(1) 编辑

摘要:Trie(Retrieval Tree)又称前缀树,可以用来保存多个字符串,并且非常便于查找。在trie中查找一个字符串的时间只取决于组成该串的字符数,与树的节点数无关。因此,它的查找速度通常比二叉搜索树更快。trie的结构很简单,每条边表示一个字符,从根节点到叶节点就可以表示一个完整的字符串。所以... 阅读全文
posted @ 2015-03-21 04:12 刺猬的温驯 阅读(759) 评论(0) 推荐(0) 编辑

摘要:什么是“脑裂”现象?由于某些节点的失效,部分节点的网络连接会断开,并形成一个与原集群一样名字的集群,这种情况称为集群脑裂(split-brain)现象。这个问题非常危险,因为两个新形成的集群会同时索引和修改集群的数据。如何避免脑裂问题?避免脑裂现象,用到的一个参数是:discovery.zen.mi... 阅读全文
posted @ 2015-03-19 16:55 刺猬的温驯 阅读(3841) 评论(0) 推荐(1) 编辑

摘要:一、分布式系统的难点分布式系统比起单机系统存在哪些难点呢?1. 网络因素由于服务和数据分布在不同的机器上,每次交互都需要跨机器运行,这带来如下几个问题:1. 网络延迟:性能、超时同机房的网络IO还是比较块的,但是跨机房,尤其是跨IDC,网络IO就成为不可忽视的性能瓶颈了。并且,延迟不是带宽,带宽可以... 阅读全文
posted @ 2015-03-19 16:53 刺猬的温驯 阅读(2126) 评论(0) 推荐(1) 编辑

摘要:摘要从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些。场景1:如果发现该操作已经在执行中则不再执行(有状态执行)a、用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发。b、用在界面交互时点击执行较长时间请求操作时... 阅读全文
posted @ 2015-03-17 11:47 刺猬的温驯 阅读(1414) 评论(0) 推荐(0) 编辑

摘要:ReentrantLock是一个较为常用的锁对象。在上次分析的uil开源项目中也多次被用到,下面谈谈其概念和基本使用。概念一个可重入的互斥锁定 Lock,它具有与使用 synchronized 相同的一些基本行为和语义,但功能更强大。名词解释:互斥表示同一时刻,多个线程中,只能有一个线程能获得该锁。... 阅读全文
posted @ 2015-03-17 11:36 刺猬的温驯 阅读(1133) 评论(0) 推荐(0) 编辑

摘要:摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MyS... 阅读全文
posted @ 2015-03-17 00:01 刺猬的温驯 阅读(198) 评论(0) 推荐(0) 编辑

摘要:摘要本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题... 阅读全文
posted @ 2015-03-16 23:57 刺猬的温驯 阅读(189) 评论(0) 推荐(0) 编辑

摘要:为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用... 阅读全文
posted @ 2015-03-16 23:35 刺猬的温驯 阅读(196) 评论(0) 推荐(0) 编辑

摘要:1.概述最近做了两个与语音识别相关的项目,两个项目的主要任务虽然都是语音识别,或者更确切的说是关键字识别,但开发的平台不同, 一个是windows下的,另一个是android平台的,于是也就选用了不同的语音识别平台,前者选的是微软的Speech API开发的,后者则选用 的是CMU的pocketsp... 阅读全文
posted @ 2015-03-03 22:30 刺猬的温驯 阅读(1765) 评论(0) 推荐(0) 编辑

摘要:java锁的种类以及辨析(一):自旋锁锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA下常见的锁名称以及特性... 阅读全文
posted @ 2015-03-01 22:03 刺猬的温驯 阅读(5312) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示