2016年5月31日
摘要: Nimbus启动时,检查当前本地是不是有所有的topology的代码,同时去申请获取leader锁,如果某台nimbus节点成为了集群的leader,会再去检查一次当前本地的代码是不是包含所有活动状态的topology,只有满足这种情况,才会接受作为leader,否则将释放leader锁并重新获取所 阅读全文
posted @ 2016-05-31 10:10 harlen 阅读(265) 评论(0) 推荐(0)
摘要: 去掉storm可靠性有三种方式: 1、Config.TOPOLOGY_ACKERS 设置为0; 2、在发送数据时不带上mesage id; 3、将tuple不做anchor发送到下一个节点,因为没有anchor到任何spout的tuple,就算没有成功处理被ack,也不会造成tuple fail 通 阅读全文
posted @ 2016-05-31 10:08 harlen 阅读(851) 评论(0) 推荐(0)
摘要: spout放在每个executer执行,我们先从spoutExecutors的初始化开始往下看,spoutExecutors是在一个worker中管理其中的tasks,在SpoutExecutors的构造函数中初始化一些组件:taskId,topologyId,spout等,在这个线程中,除了一些常 阅读全文
posted @ 2016-05-31 10:08 harlen 阅读(3046) 评论(0) 推荐(0)
摘要: storm的worker进程之间消息传递机制图: 每个worker都有一个独立的监听进程,监听配置文件中配置过的端口列表supervisor.slots.ports,topology.receiver.buffer.size代表接收线程一次最多能接收多少条消息,用户可以自定义配置。接收线程将收到的消 阅读全文
posted @ 2016-05-31 10:07 harlen 阅读(449) 评论(0) 推荐(0)
摘要: TopologyMaster: 处理拓扑的一些基本信息和工作,比如更新心跳信息,拓扑指标信息更新等 NimbusServer: ** * * NimbusServer work flow: 1. cleanup interrupted topology delete /storm-local-dir 阅读全文
posted @ 2016-05-31 10:06 harlen 阅读(1868) 评论(0) 推荐(0)
2016年4月15日
摘要: 为了防止用户在页面上重复点击或者同时发起多次请求,请求处理需要操作redis缓存,这个时候需要对并发边界进行并发锁控制,实现思路: 由于每个页面发起的请求带的token具备唯一性,可以将token作为锁(key),当前时间作为value进行并发锁控制,分为两个方法:acquireLock和reale 阅读全文
posted @ 2016-04-15 15:06 harlen 阅读(3992) 评论(0) 推荐(0)
2016年3月8日
摘要: Virtual Memory technical specification This document details the internals of the Redis Virtual Memory subsystem. The intended audience is not the fin 阅读全文
posted @ 2016-03-08 16:44 harlen 阅读(125) 评论(0) 推荐(0)
2016年3月3日
摘要: 2012年7月离开校园,加入IBM做业务顾问,两年后选择转行成为程序员,加入甲骨文研发中心专职码代码,一年多后,加入淘汽档口,感触颇多,除了离开生活了七八年的城市,更多的是对自己的不确定和迷茫。 我有幸在行业内世界排名第一第二的两家公司先后供职,也曾一度沾沾自喜,特别是当谈论到公司,工作环境,同事们 阅读全文
posted @ 2016-03-03 21:14 harlen 阅读(212) 评论(0) 推荐(0)
摘要: Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长。在写代码时,可以通过这个插件消除各种getter和setter,toString等常用方法。 lombok 注解: lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。 Lombok 注解在线帮助文档: 阅读全文
posted @ 2016-03-03 21:12 harlen 阅读(303) 评论(0) 推荐(0)