`
agapple
  • 浏览: 1582962 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
背景   最近在做的一个项目,两个java进程之间会涉及一个大数据量的传递过程,基本都是图片文件,(做了压缩后还是会比较大,最大的有超过600MB)。其次这两个java进程是在跨机房,比如中国和美国机房,网络待框也就几百kB。     这就是本文的项目背景 分析 1.  600MB的文件,都是A进程运行时根据需要生成的(下载需要的图片文件)。所以无法预先处理,而且公司总图片文件都是以TB计算,所以全量同步的方案也不靠谱 2.  从A进程到B进程的数据传递,首先想到用socket进行传递,但单socket的数据同步无法满足需求,多线程数据传递会涉及数据的切片和数据的合并等,代码相对会比 ...
背景  继续上一篇文章:http://agapple.iteye.com/blog/1183972 ,项目中需要对分布式任务进行调度,那对应的分布式lock实现在所难免。    这一周,在基于BooleanMutex的基础上,实现了zookeeper的分布式锁,用于控制多进程+多线程的lock ...
背景   前段时间学习了zookeeper后,在新的项目中刚好派上了用场,我在项目中主要负责分布式任务调度模块的开发,对我自己来说是个不小的挑战。   分布式的任务调度,技术上我们选择了zookeeper,具体的整个分布式任务调度的架构选择会另起一篇文章进行介绍。     本文主要是介绍自己在项目中zookeeper的一些扩展使用,希望可以对大家有所帮助。   项目中使用的zookeeper版本3.3.3,对应的文档地址: http://zookeeper.apache.org/doc/trunk/ zookeeper学习记录  zookeeper学习记录(二)  ...
背景   最近一个月都在做项目,我主要负责分布式任务的调度的功能,需要实现一个分布式的授权控制。   具体的需求:   1.  首先管理员启动整个任务,并设置执行权限   2.  工作节点收到消息后就会创建对应的线程,并开始执行任务(任务都是由一个管理员进行分配)   3.  运行过程中管理员需要临时中断某个任务,需要设置一个互斥信号,此时对应的工作节点都需要被阻塞,注意不是完全销毁 分析  先抛开分布式通讯这一块,首先从单个jvm如何实现进行分析, 简单点来说:  在单jvm中就是两种线程,一个为manager,另一种为worker。1:n的对应关系,manager可以随时挂起 ...
先前在部门做的一个分享,主要是介绍一下当前公司网站应用中的一些部署情况。   文档中的主要内容: 架构发展过程 apache使用情况 apache相关配置例子 mod_jk配置参数 mod_proxy配置参数 jboss简单介绍 tomcat配置参数 jetty介绍&核心配置参数
  记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了 找到最耗CPU的java线程 ps命令 命令:ps -mp pid -o THREAD,tid,time   或者  ps -Lfp pid 结果展示:   这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息。 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列。   比如这里找到了一个TID : 30834 ,所占用的TIME时间最高。 通过 printf "%x\n" 30834 首 ...
背景 最近在一些论坛或者新闻里看到了neo4j,一种擅长处理图形的数据库。 据说非常适合做一些join关系型的查询,所以抽空也看了下相关文档,给自己做个技术储备。   过程 深入学习之前,先在网上找了一下别人的一个学习文档总结,踩在别人的肩膀上总是最快,最有效的学习。   http://blog.csdn.net/gtuu0123/article/details/6384375 http://www.iteye.com/topic/978371 顺着这些思路,逐步查看一些neo4j的相关wiki文档,摘录了一张图:  neo4j的基本模型图:  针对图 ...
 以前一直使用svn diff / git diff,看到的都是console下的对比提示。 今天花了点时间找了一款工具,基于GUI的diff操作。   软件 选择的是p4merge , 下载路径: http://www.perforce.com/perforce/downloads/index.html   下载完成后,直接解压缩到 /usr/local/program/p4merge 目录   git diff配置 1. 创建相应脚本 gitmerge.sh脚本: #!/bin/sh /usr/local/program/p4merge/bin/p4merge $* ...
背景 继上一篇,已经成功尝试了deploy到google svn上,接下来尝试deploy到maven central repo 过程 参考资料:http://maven.apache.org/guides/mini/guide-central-repository-upload.html   我这里选择的是Sonatype Oss Responitory做为目标仓库,由sonatype会定时同步到mvn central repo   sonatype的发布步骤:   https://docs.sonatype.org/display/Repository/Sonatype ...
背景   前段时间在整的BeanMapping,功能开发和单元测试已经基本完善,准备release一个新版本。花了点时间找了下,如何deploy到maven central(http://repo1.maven.org/maven2/),方别客户端使用。   在测试过程中,我先找了googlecode自己的svn做为mvn repo进行测试。后续迁移到mvn central repo也只是url和帐号的问题。 过程 我的工程:  http://code.google.com/p/mapping4java/ 对应的代码路径: http://mapping4java.googlecode ...
背景 继上一篇的zookeeper的学习,上一篇主要偏向于zookeeper的总体结构的熟悉和使用层面。 本文主要是记录自己学习其内部的选举算法,一致性处理策略。 过程 在开始之前,推荐几篇比较不错的文章: http://rdc.taobao.com/blog/cs/?p=162  (选举算法) http://rdc.taobao.com/team/jm/archives/448  (代码解析) zookeeper server 入口:org.apache.zookeeper.server.quorum.QuorumPeerMain 通过QuorumPeerConf ...
背景    前段时间看了S4流计算引擎,里面使用到了zookeeper进行集群管理,所以也就花了点时间研究了下zookeeper,不求看懂所有源码,但求了解其实现机制和原理,清楚其基本使用。这也是为后续hadoop,gridgain的分布式计算的产品。 学习 首先就是收集一些前人的一些学习资料和总结内容,方便自己快速入门。  这里罗列了几篇不错的文章:    http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/   (介绍了zookeeper能用来干嘛) http://zookeeper.apac ...
What is BeanMapping ? 可以提前看一下原先的帖子: 我也造了个轮子:BeanMapping(属性拷贝)   新增功能(亮点):  1.  Convertor转化处理 支持(int,long,short,byte,char,boolean,float,double)8种原型和其对应的基本类型 + (BigInteger , BigDecimal)  + String 允许互相之间转化 支持(java.util.Date , java.util.Calendar)和字符串的转化,提供默认的day("yyyy-MM-dd") , t ...
背景   最近花了点时间研究了下分布式计算这一块的内容。领导给的第一个任务,就是学习下S4和GridGain。花了几天的时间把s4的源码看了下,把自己的理解和学习的内容做一个记录。 下一篇会是GridGain的分享 学习 s4的论文: S4: Distributed Stream Computing Platform s4的官网: http://s4.io/ s4是什么? 1.  s4的全称 :  Simple Scalable Streaming System (简单的描述:分布式流计算系统) 2.  特点:  distributed(分布式) scalable ...
上周部门周会上,分享了一下velocity/EL表达式的语言机制的实现。   主要从几个方面来介绍: 语法树1. 介绍BNF定义,完成文法描述2. 基于BNF定义,完成javacc词法解析3. 基于jjtree构建语法树 解析执行1. 四则运算执行 2. Get/Set/Method执行 其他实际案例: 1. velocity MapGetExecutor性能优化2. velocity 安全插件实施方案3. velocity Uberspect自定义加载顺序 4. velocity的一些优化: 参数优化,taobao两个优化经验。 google docs地址: https:// ...
Global site tag (gtag.js) - Google Analytics