- 博客(169)
- 收藏
- 关注
原创 Twitter Strom的源码分析(version 0.7)
Twitter Storm的内核代码主要有四个模块:nimbus, supervisor, worker和task。解析了四个模块分别是做什么的,怎么做的。
2014-05-07 11:48:55 668
原创 xxxxx
一般情况下,两阶段提交机制都能较好的运行,当在事务进行过程中,有参与者宕机时,他重启以后,可以通过询问其他参与者或者协调者,从而知道这个事务到底提交了没有。 问题: 当协调者在发出commit消息后宕机了,而唯一收到这条命令的一个参与者也宕机了, 这个时候这个事务就处于一个未知的状态,没有人知道这个事务到底是提交了还是未提交,从而需要数据库管理员的介入,防止数据库进入一个不一致的状态。 三阶段提交增加2个改动点也就是说,除了引入超时机制之外,3PC把2PC的准备阶段再次一分为
2016-09-22 20:25:24 63088
转载 JAVA8特性之STREAM
Java 8 引入了流式操作(Stream),通过该操作可以实现对集合(Collection)的并行处理和函数式操作。根据操作返回的结果不同,流式操作分为中间操作和最终操作两种。最终操作返回一特定类型的结果,而中间操作返回流本身,这样就可以将多个操作依次串联起来。根据流的并发性,流又可以分为串行和并行两种。流式操作实现了集合的过滤、排序、映射等功能。使用Stream分为3个步骤1) 创建S
2016-08-11 15:20:01 32117 3
原创 Mysql索引
Mysql索引问题 1> idx_notice_type_tenant_id是表kmd_notice的单列索引 结果很诧异,没有走索引,找DBA确认后,发现表的记录数只有9条,用索引要filter的记录数是5条,如果使用索引filter的记录数占总记录数的17%以上(不确定),则不走索引 2> 分别为2个字段建索引,用like前缀测试索引使用,结果如下:
2016-08-11 15:00:15 459
原创 Check Exception or Uncheck Exception
Check Exception or Uncheck Exception最近遇到Spring MVC的系统中有各种乱七八糟的异常,领导说重构下,统一的异常处理、支持国际化。系统现状:1. 系统中的异常一般有一个统一处理异常的AOP,但是没有严格的错误码,抛异常文案都是直接裸露在业务代码中2. 系统抛的异常大多没有业务含义,NP也没有处理,大多都是直接的java代码级别的异常
2016-07-25 09:21:45 1648
原创 Mondrian OLAP: schema
参考: http://mondrian.pentaho.com/documentation/schema.php一个OLAP SCHEMA至少需要满足以下几点1. 支持定义一个或者多个星型模型、雪花模型2. 并且支持CUBE的标准描述3. 而且需要支持对CUBE的标准操作试着按着自己的理解回溯mondrian定义schema的过程。No1.Schema至少要包含物理
2015-09-21 19:22:03 937
原创 用户体验我有话说
毕业至今工作四年, 第一年主要做偏底层的东西(Mahout和Storm),由于没有什么前线的业务场景, 对用户体验这种东西感受不深。第二年换了个老大, 做产品出身, 做了3年的数据产品,码农角色。三年来从定向业务产品到平台产品, 在经历了众多用户的叫骂声后, 特别是现在,转岗后作的产品和上一个产品类似,对用户体验的感触越来越深。上周有个同事跟我说, 我所在的上一个团队的其中有个产品真烂
2015-09-18 14:25:39 1211
原创 mysql delete锁
MYSQL DELETE1. 有索引且索引值唯一行级锁2. 其他情况表级锁 http://www.databaseskill.com/3505978/https://blogs.oracle.com/mysqlinnodb/entry/introduction_to_transaction_locks_in...
2015-05-11 21:32:44 1794
转载 HA脑裂和对策
HA系统脑裂和对策脑裂是由于多个节点之间失去联系,相互认为对方故障,从而抢夺资源,导致系统异常。对策:1) 冗余心跳方式,减少脑裂的概率2) 争夺的资源加锁,同时只有一个节点抢夺资源
2015-05-05 16:18:07 880
转载 ROLAP、HOALP、MOLAP
OLAP(on-Line Analysis Processing)是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是"维"这个概念。 “维”(dimension)是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关
2014-07-28 10:03:20 687
原创 java内存区域
java虚拟机在执行java程序的过程中会把它的内存划分为多个数据区域,分别是(1) 方法去和堆: 这两块区域是线程之间共享的,随着虚拟机进程的启动而存在(2) 栈( 虚拟机栈和本地方法栈)和程序计数器: 这3块区域是线程的私有区域,随着线程的启动和结束而建立和销毁1 方法区:用于存储虚拟机加载的类信息、常量、静态变量和即时编译器编译后的代码。例如类加载器加载类的时候,
2014-06-21 10:50:59 583
转载 何为禅
佛教中有一个字是“禅”,禅是什么?禅是安心,安顿住心。禅是开放的,不属于佛教,是我们大家的,当你的心有了禅,心就不一样了,生活也就不一样了。 想当年释迦牟尼在灵山会上拈花一笑,这一笑,与他的弟子心相印了,佛祖说:“吾有正法眼藏,涅槃妙心,即付嘱于汝。”不立文字、不假思维,直指人心,这个法门即是禅,不在讲,在印心。 禅不是什么东西,客厅中放有一盆花,感觉就很不同,禅就
2014-05-27 19:58:08 780
转载 禅道故事:和尚与秀才
有一群人等着要过河,船夫把渡船从沙滩上推到河里,河边上的小鱼、小虾、小螃蟹,因为两岸船只的往来,都给压死了。等候乘船的人很多,其中有一位秀才和一位禅师。秀才看到渡船压死鱼虾的情况,就问禅师:「和尚,你看船夫把船推下水的时候,压死那么多鱼、虾、螃蟹,你说这是谁的罪过呢?是乘船的人,还是船夫的罪过?将来这个杀生的罪业,是要归于乘船的人,还是船夫?」禅师指着秀才说:「是你的罪过。」秀才很生气的说
2014-05-27 19:48:56 1344
转载 海量数据处理常用思路和方法
1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动到其他的关键字。
2014-05-08 11:46:11 432
原创 塞纳留斯
塞纳留斯 塞纳留斯,丛林之王,半神。长相很奇怪,上半身是暗夜精灵,下半身是鹿。从长相可以YY一下,应该是暗夜精灵和鹿生的。 但是从上古之战之天崩地裂里看到,塞纳留斯的母亲是伊瑟拉。伊瑟拉是条绿龙,很牛X的五条守护巨龙之一,他父亲是玛洛恩,上古之战中阿克蒙德差点杀掉塞纳留斯的时候, 玛洛恩出现了,白色的一条鹿,银白色的身躯,银白色的眼睛,散发的白色的光芒
2014-05-07 19:29:23 2309
原创 ZeroMQ之REP/REQ模式
参考: http://zguide.zeromq.org/page:allREP/REQ这种模式是双向的,应答模式。也就是说是一个请求一个响应,不能发送多个消息。模型的图如下:(图源自于 http://zguide.zeromq.org/page:all )代码如下:服务器代码: 客户端代码: Java代码 package reqr
2014-05-07 19:13:59 2050
原创 Ibatis缓存设置
cacheModel id="Cache-LOGIC-COLUMNS" type="MEMORY" readOnly="true" serialize="false"> flushInterval hours="24" /> property name="reference-type" value="STRONG"/> cac
2014-05-07 19:11:32 769
原创 xfire发布ws服务-同名函数问题
客户端引用xfire的服务的时候,调用方法时出现错误:Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Index: 2, Size: 2
2014-05-07 19:00:27 599
转载 Hbase简介
HBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行M
2014-05-07 17:55:17 355
原创 ZeroMQ之PUB/SUB模式
PUB/SUB模式: 发布/订阅模式。该模式是单向的,发布者send msg, 订阅者receive msg. 一旦有消息发出,pub会发送给所有的sub。.模式如下图:可以看出发布者绑定绑定一个端口,订阅者通过连接发布者接受订阅的消息。官网描述这种模式要注意以下几点:1. pub/sub模式下,sub事实上可以连接多个pub,每次只连接一个connect,所以接收到的消息可
2014-05-07 17:43:56 9823
转载 ZeroMQ之消息丢失解决方法
图中所说的"slow join"的解释如下:Making a TCP connection involves to and fro handshaking that takes several milliseconds depending on your network and the number of hops between peers. In that time, ØMQ can
2014-05-07 17:40:39 5360
原创 ZeroMQ之PUSH/PULL模式
PUSH: 用于发送消息,定义一个zeromq的socket实例,用于send msgPULL: 用于接收消息,recv msgAPI:http://api.zeromq.org/ push/pull模式如下图:(图源自http://zguide.zeromq.org/page:all) 用于服务器与客户端消息通信。下面是服务器给客户端发送消息的代码,服务器PUSH
2014-05-07 17:28:38 2347
转载 java设计模式示例
创建模式1.工厂方法模式(Factory Method) 将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到具体的子类。大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽象模式。[java] view plaincopypublic class TestFactoryMethod {
2014-05-07 17:19:47 458
翻译 Mahout介绍
What is Mahout, why need it?Mahout 是机器学习和数据挖掘的一个分布式框架,区别于其他的开源数据挖掘软件,它是基于hadoop之上的; 所以hadoop的优势就是Mahout的优势。官网http://mahout.apache.org/ 上说的Scalable就是指hadoop的可扩展性。Mahout用map-reduce实现了部分数据挖掘算法,解决了并行挖
2014-05-07 16:24:12 515
原创 Twitter Strom UI
解释下storm ui上各项属性的含义。1. mainpage 首页主要分为3块: a. Cluster Summary Nimbus uptime: nimbus的启动时间 Supervisors: storm集群中supervisor的数目 used slots: 使用了的slots数 free slo
2014-05-07 16:21:22 444
转载 CAP理论
CAP理论由Eric Brewer在ACM PODC会议上的主题报告中提出,这个理论是NoSQL数据管理系统构建的基础,如下图所示:▲CAP理论 其中字母“C”、“A”、“P”分别代表以下三个特征:·强一致性(Consistency)。系统在执行过某项操作后仍然处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读取到最新的值,这样的系统被
2014-05-07 16:11:38 654
原创 JAVA多线程
Java并发编程---学习笔记1. 多线程Java并发编程是采用多线程进行编程。多线程的引入可以提高程序运行的效率。1.1 线程创建一个线程一般有三种方法:1.1.1 Runnable(1) 创建一个实现了Runnable接口的一个实例, 重写run()方法(2) 用创建的实例构造一个线程(3) 调用start()方法启动线程,线程会执行Runnable
2014-05-07 13:32:43 667
原创 数组转换成字符串
不建议用if来判断是否是数组的最后一个元素 public static void main(String[] args) throws ParseException { int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; StringBuilder sb1 = new StringBuilder(arr.leng...
2014-05-07 11:14:39 525
原创 数组转换成字符串
uilder sb1 = new StringBuilder(arr.length); // 1 for (int i = 0, len = arr.length; i < len; i++) { if (i > 0) { sb1.append(", "); } sb1.append(arr[i]);
2014-05-07 11:14:39 163
原创 java+db 树的存储和查询
存储树形结构有很多种方式1 存储父的ID2 存储树的前序、中序、后序等关系3 存储左右节点的顺序 第一种呢,数据存储比较简单,但是应用层构造树的时候,会比较复杂,毕竟递归性能不好。第二、三种插入节点的时候 计算节点的顺序比较复杂 前几天看到文章介绍存储深度的方式,我觉得很靠谱。首先第一种方法构造树的复杂是因为节点是无序的,可能遍历的是子节点,此时根本找不到父节点。...
2013-11-20 13:38:16 324
strom之nimbus
StormStorm的主线主要包括4条:nimbus, supervisor, worker和task。Nimbus要了解nimbus的具体做的操作,可以从提交一个topology的流程开始。1.1 PrepareNimbus启动时候,运行了一个Thrift Server。它会在topology提交之前做以下四个工作。 (1) 清理一些中断了的topolo...
2013-10-30 19:28:11 549
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人