- 浏览: 1595930 次
- 性别:
- 来自: 杭州
最新评论
-
jsrgzhangzhiyong:
关于null值的转换还是感觉不太友好,就像 mapstruct ...
我也造了个轮子:BeanMapping(属性拷贝) -
he037:
a417930422 写道引用使用EPHEMERAL会引出一个 ...
基于zookeeper的分布式lock实现 -
seancheer:
qianshangding 写道首先节点启动后,尝试读取本地的 ...
zookeeper学习记录三(session,watcher,persit机制) -
雪夜归人:
您好,我想咨询一下,开源的canal都能支持mysql的哪些版 ...
Canal BinlogChange(mysql5.6) -
zhoudengyun:
copy 一份做记录,后续学习,请知悉
阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费
文章列表
背景
最近在做的一个项目,两个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简单学习
- 博客分类:
- opensource
- java
背景
最近在一些论坛或者新闻里看到了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学习记录(二)
- 博客分类:
- distributed
背景
继上一篇的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 ...
zookeeper学习记录
- 博客分类:
- distributed
背景
前段时间看了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:// ...