阅读目录 Storm来源 初探 再探 构建第一个版本 被Twitter收购 开源的Storm 发布之后 Storm的技术演进 构建开发者社区版 离开Twitter 提交到Apache Apache孵化 结论 Apache Storm 最近成为了ASF的顶级项目,这对于该项目和我个人而言是一个重大的里程碑.很难想像4年前Storm只是我脑海中的一个想法,但现在却成为了一个有着大社区支持并被无数企业使用的繁荣项目.在此我将在本文中回首Storm的成长历程及其经验教训. 我会根据我当初必须要克服的主要…
英文原文地址 中英文对照地址 History of Apache Storm and lessons learned --项目创建者 Nathan Marz Apache Storm 最近成为了ASF的顶级项目,这对于该项目和我个人而言是一个重大的里程碑.很难想像4年前Storm只是我脑海中的一个想法,但现在却成为了一个有着大社区支持并被无数企业使用的繁荣项目.在此我将在本文中回首Storm的成长历程及其经验教训. 我会根据我当初必须要克服的主要挑战来涵盖Storm历史的相关主题.本文前25%是…
这篇文章讲了什么? 如题,本屌入职100天之后的经验和教训,具体包含: 对开发的一点感悟. 对如何提问的一点见解. 对Google开发流程的吐槽. 如果你 打算去国外工作. 对Google的开发流程感兴趣. 想成为一个不错的开发者. 那么请继续阅读. 如果你 觉得使用英文单词和缩略语就是装逼(例如此人LRui@和其代表作). 无法忍受一个来自新人的言论. 那么请点击页面左上角或右上角的关闭,谢谢. 正文 区别 不同于一般公司,Google所使用的技术绝大多数是自己的技术,基础类库.文件IO.网络…
这个世界上有两种人-从经验教训中学习的人以及听从别人建议的人.这里是我一路走来学到的一些东西,分享给大家: 在添加任何第三方party之前,请三思:这真的是一个成熟的项目吗? 如果一个东西用户看不到,就不要绘制它! 除非真的需要,否则别使用数据库: 达到65k方法数限制来的非常快,真的,非常快!不过 multidexing 可以拯救你; RxJava 是 AsyncTasks 以及其它杂碎的最佳替代者: Retrofit 可能是现在最佳的网络请求库: 使用 Retrolambda来简化你的代码:…
新人入职100天,聊聊自己的经验&教训 这篇文章讲了什么? 如题,本屌入职100天之后的经验和教训,具体包含: 对开发的一点感悟. 对如何提问的一点见解. 对Google开发流程的吐槽. 如果你 打算去国外工作. 对Google的开发流程感兴趣. 想成为一个不错的开发者. 那么请继续阅读. 如果你 觉得使用英文单词和缩略语就是装逼(例如此人LRui@和其代表作). 无法忍受一个来自新人的言论. 那么请点击页面左上角或右上角的关闭,谢谢. 正文 区别 不同于一般公司,Google所使用的技术绝大多…
旅程8:后记:经验教训 我们的地图有多好?我们走了多远?我们学到了什么?我们迷路了吗? "这片土地可能对那些愿意冒险的人有益."亨利.哈德逊 这一章总结了我们旅程中的发现.它强调了我们在这个过程中所学到的最重要的经验教训,提出了如果我们用新知识开始这段旅程,我们将以不同的方式做的一些事情,并指出了Contoso会议管理系统的一些未来道路. 你应该记住,这个总结反映的是我们的具体旅程,并非所有这些发现都适用于你自己的CQRS旅行.例如,我们的目标之一是探索如何在部署到Microsoft…
 七年IT生涯的经验教训[转]我在IT界也拼打了有好几年了,但是现在和别人比较起来不是很如意.从天分上来说,我在属于智商不低的人:从技术上说,几乎没有我拿不下的:从见解上看,我是很有点子看法的人.但是现在却只能重新开始,还没脱贫.一切都是因为自己甘做黄牛的结果. 1:每次跳槽,你的职位就reset了,这是我最深刻的体会. 现在我写简历都比较为难,因为怕人家问我为什么你平均每年换一个企业呢? 我知道这不是我的错,但是却无言申辩.最大的经验教训就是选择企业的时候一定要谨慎.否则进去了也呆时间不长…
[编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了解如何充分利用微服务 正如笔者在上文<微服务架构是敏捷软件架构>中提到的,笔者对微服务架构的第一反应,就是质疑它跟面向服务架构(SOA)有何区别.还有很多人将这两种架构联系在一起.詹姆斯·刘易斯和马丁·福勒在他们的权威博客中包含了一个侧边栏,进行微服务和 SOA 的对比.对此,怀疑派做出的回应是二…
谭传奇学长: 我们的弯路可能是,一开始没有从最基础的部分开始迭代开发,一开始就想的太远了一些,每一步开的有点太大了,所以可能有些东西最后就连不上,也没有能够按时完成.如果可以先做出一个能用的版本,然后再不断完善,至少不会跳票,但我们可能有的部分做的足够好,有的关键部分就没时间做,结果就是整个东西无法发布 王安然学长: 经过第一次迭代开发,团队合作的很多问题暴露出来. 设计不足.一个软件工程的设计到实施,其实是很重要一步.在我们的项目中,为了满足游戏设计的需求,我们的软件工程设计中保留了很多的可扩…
作者:Łukasz Kosman 和 Jakub Wojtczak 原文:https://medium.com/swlh/lessons-learned-after-making-the-first-10-commercial-apps-in-flutter-f420808048cd 在过去的24个月中,我们花费 17.193,00 个小时使用 Flutter 完成了10个商业应用程序,本文将分享我们的见解. 阅读本文后,您将学习到: 选择Flutter的原因是什么? Flutter对预算和稳定…
来源:分布式实验室译者:冯旭松在Ridecell公司管理基础设施团队几年后,我想在停下来休息时记录一些想法和经验教训. 1Kubernetes不仅仅是炒作 我在Kubernetes领域里活跃了很久,所以这并不出乎我的意料,但当某件事情被大肆宣传的时候,仔细检查一下总是好的.在两年多的时间里,我的团队完成了从Ansible+Terraform到纯Kubernetes的全面迁移,在这个过程中,我们的部署率增加了三倍多,同时将部署错误减少到"我都不记得上次是什么时候发生的"的水平.我们还提高…
一. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node).其分别对应的角色如下: 主控节点(Master Node)上运行一个被称为Nimbus的后台程序,它负责在Storm集群内分发代码,分配任务给工作机器,并且负责监控集群运行状态.Nimbus的作用类似于Hadoop中JobTracker的角色. 每个工作节点(Work Node)上运行一个被称为Supervisor的后台程序.Supervisor负责监听从Nimbus分配给…
1.1.课程的背景 Storm是什么? 为什么学习Storm? Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop. 随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计.推荐系统.预警系统.金融系统(高频交易.股票)等等, 大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流. 按照storm作者的说法,Storm对于实时计算的意义类似于Hadoop对于批处理…
关于,storm的启动我这里不多说了. 见博客 storm的3节点集群详细启动步骤(非HA和HA)(图文详解) 建立stormDemo项目 Group Id :  zhouls.bigdata Artifact Id : stormDemo Package : stormDemo <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i…
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 继续编写 StormTopologyMoreWorker.java package zhouls.bigdata.stormDemo; import java.util.Map; import org.apache.storm.Config; import org.apache.storm.LocalCluster; import org.apache.storm.…
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 Storm编程入门API系列之Storm的Topology多个Workers数目控制实现 继续编写 StormTopologyMoreExecutor.java package zhouls.bigdata.stormDemo; import java.util.Map; import org.apache.storm.Config; import org.apac…
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 Storm编程入门API系列之Storm的Topology多个Workers数目控制实现 继续编写 StormTopologyMoreTask.java package zhouls.bigdata.stormDemo; import java.util.Map; import org.apache.storm.Config; import org.apache.s…
有代码的书籍看起来就是爽,看完顺便跑个demo,感觉很爽! 场景分析 主要是利用apache的访问日志来进行分析统计 如用户的IP来源,来自哪个国家或地区,用户使用的Os,浏览器等信息,以及像搜索的热词等信息的统计 这里日志信息如下 24.25.135.19 - - [1-01-2011:06:20:31 -0500] "GET / HTTP/1.1" 200 864 "http://www.adeveloper.com/resource.html" "M…
概念,见博客 Storm概念学习系列之stream grouping(流分组) Storm的stream grouping的Shuffle Grouping 它是随机分组,随机派发stream里面的tuple,保证polt的每个人物接收到的tuple数目相同.(它能实现较好的负载均衡) 如果工作中没有特殊要求,一般用Shuffle Grouping. 编写StormTopologyShufferGrouping.java package zhouls.bigdata.stormDemo; imp…
概念,见博客 Storm概念学习系列之storm的定时任务 Storm的定时任务,分为两种实现方式,都是可以达到目的的. 我这里,分为StormTopologyTimer1.java   和  StormTopologyTimer2.java 编写代码StormTopologyTimer1.java 我这里,用的是shuffleGrouping方式.若大家不懂的话,见我下面的博客 Storm编程入门API系列之Storm的Topology的stream grouping //设置定时任务 con…
概念,见博客 Storm概念学习系列之storm的可靠性  什么业务场景需要storm可靠性的ACK确认机制? 答:想要保住数据不丢,或者保住数据总是被处理.即若没被处理的,得让我们知道. public void nextTuple() { num++; System.out.println("spout:"+num); int messageid = num; //开启消息确认机制,就是在发送数据的时候发送一个messageid,一般情况下,messageid可以理解为mysql数据…
基础 http://os.51cto.com/art/201308/408739.htm   模型 http://www.cnblogs.com/linjiqin/archive/2013/05/28/3104016.html 一.Storm基本概念 在运行一个Storm任务之前,需要了解一些概念: Topologies Streams Spouts Bolts Stream groupings Reliability Tasks Workers Configuration Storm集群和Ha…
一.storm与Hadoop对比 Hadoop: 全量数据处理使用的大多是鼎鼎大名的hadoop或者hive,作为一个批处理系统,hadoop以其吞吐量大.自动容错等优点,在海量数据处理上得到了广泛的使用. Hadoop下的Map/Reduce框架对于数据的处理流程是: 1. 将要处理的数据上传到Hadoop的文件系统HDFS中. 2. Map阶段 a)   Master对Map的预处理:对于大量的数据进行切分,划分为M个16~64M的数据分片(可通过参数自定义分片大小) b)   调用Mapp…
下面的是学C++时要注意的. 1.把C++当成一门新的语言学习(和C没啥关系!真的.): 2.看<Thinking In C++>,不要看<C++变成死相>: 3.看<The C++ Programming Language>和<Inside The C++ Object Model>,不要因为他们很难而我们自己是初学者所以就不看: 4.不要被VC.BCB.BC.MC.TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言: 5.不要放过任何一个看…
昨天又创建了一个项目,fucms,可是本地一直没有权限提交,搞了非常久,试了几十次,都不行,我是非常的灰心和郁闷.  刚刚,和CSDN-Code的官方客服咨询了非常久非常久,最终摸索出来了一些心得体会.  特别总结下来,算是对摸索与实践的记载,提醒后来的Coder,不要再误入歧途.  说真的,Code平台眼下的权限设计真得非常糟糕,上手不easy. 实践经验1.Windows下使用Eclipse,通过https訪问和提交,不须要配置公钥.   Linux下使用 不管是 https,还是通过SSH…
想来接触mongodb它已经快一年了,对于其指数已经积累了很多的经验,知识,以这个夜黑风高的优势,放mongodb总结一番吧. 一,索引介绍 mongodb具有两类索引,分别为单键索引和复合索引. 1.单键索引是最简单的一种索引.创建单键索引的开销要比复合索引小非常多.单键索引主要用于针对单值查询的条件. 2.复合索引是将文档中的几个键联合起来创建的一种索引,创建这样的索引须要很多其它的空间与性能开销.分别体如今: 1).在给大量数据创建复合索引时.会堵塞数据库的查询,更不用说改动和插入操作了:…
https://www.jianshu.com/p/2149c9fee166 摘要: 本文以过来人的身份将自身2年的研究经验做了一下分享,希望本文对于即将开始从事人工智能研究的朋友有所帮助. 人工智能研究这个领域是有一定门槛的.对于初学者来说,一般通常的做法是直接购买一些热门的书籍,比如“西瓜书”.“花书”.“xx天从入门到精通”.“xx天从入门到放弃”等等,但大多数书籍都是讲的基础知识,稍显乏味和枯燥,此外内容太深奥,初学者可能看一段时间就想放弃了.本文以过来人的身份将自身2年的研究经验毫无保…
试验环境:TQ2440开发板(配套TQ4.3寸屏) 试验参考书目:<ARM处理器裸机开发实战--机制而非策略>(以下简称<裸机开发实战>) <裸机开发实战>第13章LCD控制器原理与实验中是以TQ3.5寸屏讲解的,开始我也注意到了这一点,所以对于一些主要的配置参数(数据手册那些参数表中列出的数据)都是参考TQ4.3寸屏的数据手册进行配置的.而忽略了对于数据手册中时序图的关注(因为大眼一看参考书上的图跟数据手册上的图貌似没啥差别,所以没有太在意,就直接按照教材上的时序图配…
故事背景,天书世界,现在项目已经属于成熟维护期,是时候总结一下当时的想法 第一个问题,为什么使用mongodb? 数据库对于游戏项目本身的要求与传统业务系统差异较大,所以nosql的弱结构性对于我那是相当的有吸引力, c++代码里面夹杂着sql这种方式实在是有点丑 由于要实现“秒合”,那么就意味所有的数据必须放到一起,遍寻当时的所有的数据库,支持热分片也就mongodb,仅此一家,别无分店 mongodb号称与传统的sql最为接近,你可以像使用sql一样的去用他 第二个要回答的问题,mongod…