一旦 shard coordinator(相当于分布式系统的 zookeeper) 启动,它就会启动一个定时器,每隔一定的时间尝试平衡一下集群中各个节点的负载,平衡的办法是把那些负载较重的 actor 移动到负载较轻的节点上.在这一点上,我以前的理解有误,我以为 shardRegion 是移动的最小单位. val rebalanceTask = context.system.scheduler.schedule(rebalanceInterval, rebalanceInterval, self…
为了使一个项目支持集群,自己学习使用了 akka cluster 并在项目中实施了,从此,生活就变得有些痛苦.再配上 apache 做反向代理和负载均衡,debug 起来不要太酸爽.直到现在,我还对 akka cluster 输出的 log 不是很熟悉,目前网络上 akka cluster 的信息还比较少,想深入了解这东西的话,还是要自己读 source code.前几天,雪球那帮人说 akka 不推荐使用,有很多坑,这给我提了个醒,目前我对 akka 的理解是远远不够的,需要深入学习. akk…
cluster sharding 的目的在于提供一个框架,方便实现 DDD,虽然我至今也没搞明白 DDD 到底适用于是什么场合,但是 cluster sharding 却是我目前在做的一个 project 扩展到集群上非常需要的工具. sharding 要做这么几件事 1. 对于每一个 entity,创建一个 actor.该 entity 有 Id 作为唯一标示.该 entity 的所有消息都由此 actor 来处理 2. 该 actor 在一段时间内不工作时,会超时并 kill self 3.…
不多说,直接上干货! Streamsets的官网 https://streamsets.com/ 得到 https://streamsets.com/opensource/ StreamSets支持多种安装方式的第一种安装方式: Core Tarball   核心安装包(Core Tarball) StreamSets支持多种安装方式的第二种安装方式: Cloudera Parcel 这是Cloudera安装包(Cloudera Parcel) StreamSets支持多种安装方式的第三种安装方…
收藏一些经典的源码,持续更新!!! 1.深度学习框架(Deep Learning Framework). A:Caffe (Convolutional Architecture for Fast Feature Embedding)Convolutional 由伯克利大学Yangqing Jia Ph.D开发的开源深度学习的代码. Homepage:http://caffe.berkeleyvision.org/ Paper:Caffe: Convolutional Architecture f…
一直不是很清楚ApplicationMaster的作用,尤其是在yarn client mode和cluster mode的区别 网上有一些非常好的资料,请移步: https://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/ 然而还是不如直接看source code来的真切,参考spark source code(2.1.0) 简单解释下如下图片: master 即为App…
英语在软件行业的重要作用不言自明,尤其是做国际项目和写国际软件,好的英语表达是项目顺利进行的必要条件.纵观眼下的IT行业.可以流利的与国外客户英文口语交流的程序猿占比并非非常高.要想去国际接轨,语言这一关一定要过. 本人做刚入行的时候非常想找一本专门写给程序猿的英文教材,但并没有找到特别合适的.通过这几年的欧美项目经理,我发现与国外同行交流重在表明交流的意图而轻语法规定.一件事情的表述,仅仅要可以用几个Key Words来表述清楚.两方可以理解就可以.并没有使用我们上学期间艰深晦涩的语法知识.…
程序运行的整个过程,学习一下 源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 连接器 (Linker) → 可执行程序 (executables) 1. 词法分析 词法分析器根据词法规则识别出源程序中的各个记号(token),每个记号代表一类单词(lexeme).源程序中常见的记号可以归为几大类:关键字.标识符.字面量和特殊符号.词法分析器的输入是…
在我的博客A debugging issue caused by source code mapping里我介绍了在我做SAP C4C开发时遇到的一个曾经困扰我很久的问题,最后结论是这个问题由于JavaScript的source code map机制在Chrome开发者工具里起作用,其实是working as designed的一种行为.但是当时因为时间限制,没有去深入学习JavaScript source code map的更多细节. 在这篇文章里我用一个简单的UI5应用来研究该机制.这个应用…
前言........... 上一篇文章我们讲了Akka Remote,理解了Akka中的远程通信,其实Akka Cluster可以看成Akka Remote的扩展,由原来的两点变成由多点组成的通信网络,这种模式相信大家都很了解,就是集群,它的优势主要有两点:系统伸缩性高,容错性更好. 集群概念 很多人很容易把分布式和集群的概念搞错,包括我也是,我一开始也以为它们两个是一样的概念,只是叫法不同而已,但其实不然,虽然它们在实际场景中都是部署在不同的机器上,但它们所提供的功能并不是一样的.举个简单的例…