自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 阿里巴巴开源项目: 阿里巴巴去Oracle数据迁移同步工具

背景    08年左右,阿里巴巴开始尝试MySQL的相关研究,并开发了基于MySQL分库分表技术的相关产品,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从O...

2016-03-05 18:29:59 243 0

原创 Canal BinlogChange(mariadb5/10)

背景 先前开源了一个开源项目: 【阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费】  本文主要是介绍一下canal支持mariadb协议上的变化.    协议变化 mariadb5.5 mariadb5.5主要是基于mysql5.5的原型,类型...

2014-01-20 17:25:27 101 0

原创 Canal Client API

  快速体验 1.  首先需要先启动canal server,可参见:Canal Server的QuickStart 2.  运行canal client,可参见:canal client的ClientExample   如何下载 1.  如果是maven用户,可配置mvn dep...

2013-10-29 14:45:46 421 0

阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)

  项目背景    阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。    otter第一版本可追溯到04~05年,此次外部开源的版...

2013-08-22 16:48:06 424 0

Canal BinlogChange(mysql5.6)

背景 先前开源了一个开源项目: 【阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费】    本文主要是介绍一下canal1.0.3支持mysql5.6协议上的变化.    协议变化 1.   binlog checksum     mysql5...

2013-04-09 00:26:32 128 0

canal DevGuide

背景    先前开源了一个开源项目: 【阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费】     本文主要是介绍一下如何给canal贡献代码,介绍其设计思路和扩展方式   设计  说明: server代表一个canal运行实例,对应于一个jvm...

2013-04-01 23:33:18 47 0

原创 Canal AdminGuide

 背景    先前开源了一个开源项目: 【阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费】     本文主要是介绍一下如何部署&使用   环境要求 1. 操作系统     a.  纯java开发,windows/linux均可支...

2013-03-19 19:43:52 244 0

github上基于milestone自动生成releaseNotes

背景   最近在做一个项目,代码都已经托管到github上,准备走开源路线。 项目: 一个重大轮子: 基于mysql数据库binlog的增量订阅&消费    使用了github的issue tracker代码,本文记录一下如何使用github管理release notes,希...

2013-02-19 18:19:19 269 0

mysql TableMap id递增问题

背景    这两天在线上运行的mysql数据库同步,过个1,2天就爆了一次内存,所以dump了一下jvm内存信息分析了下,发觉就是tablemap对象的cache是一个罪魁祸首,2G的old区,平均被4个同步任务划分掉。      解释下,缓存tablemap的意义:    a.  in...

2013-02-06 16:19:00 59 0

阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费

   背景    早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&a...

2013-02-06 00:36:23 599 0

原创 Canal ClientExample

Canal介绍       基于mysql数据库binlog的增量订阅&消费   ClientExample 依赖配置:(目前暂未正式发布到mvn仓库,所以需要各位下载canal源码后手工执行下mvn clean install -Dmaven.test.skip) ...

2013-02-06 00:29:09 145 0

原创 Canal QuickStart

Canal介绍       基于mysql数据库binlog的增量订阅&消费   QuickStart 几点说明:(mysql初始化) a.  canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,并且配置bin...

2013-02-06 00:28:47 40 0

zookeeper OOM问题排查

背景 最近折腾的数据库同步项目中,大量使用了zookeeper(版本3.3.3),可以说是强依赖,但是最近频频出现zookeeper内存使用率达到100%,而且是GC不掉,直接导致整个系统挂起,伤不起阿   分析 因为大部分的情况都是无法GC回收,所以很大程度上怀疑出现memory lea...

2012-12-05 21:33:49 150 0

zookeeper watcher使用注意点

背景  项目中使用了zookeeper进行的类似工作流引擎的工作流转,将一次工作请求拆分了4个节点(S/E/T/L)。S阶段做完后,通过zk的watcher触发下一个E节点进行处理,S和E可能为不同的jvm上,所以需要走一个分布式的消息进行通知。 思路 基于zookeeper做持久化watc...

2012-09-26 17:27:04 122 0

apache oro使用注意细节(并发问题)

背景   距离上一篇文章已经有4个多月了,这4个多月一直在忙着做一个数据库同步产品的代码研发和测试,现在基本运行稳定。 本文主要介绍一下,当时使用apache oro包进行正则过滤时,使用时出现的一个并发问题,排查了好几天才找到原因。希望大家使用时引以为戒,望周知。   过程 简单的描述下...

2012-09-21 11:43:49 71 0

异步并行加载使用说明(asyncload)

背景  最近资讯asyncload使用的同学越来越多,会有些一些经常性的问题,这里我做一下整理和answer,同时介绍一下asyncload的UserGuide 和一些限制等。   关于asyncload,又名异步并行加载 ,可参见我之前的文章: (业务层)异步并行加载技术分析和设计 U...

2012-04-28 16:43:29 231 0

BeanMapping发布1.0.2版本

背景   BeanMapping是什么? 请查看我之前的一篇文章:  我也造了个轮子:BeanMapping(属性拷贝)  版本变更内容   convetor包名重构,拼写错误   ScriptExecutor接口重构,加上ScriptContext操作   FiledSetExecu...

2012-04-06 16:10:41 67 0

mysql number类型引号问题

背景  这几天在做数据自动化同步测试过程,发现一个诡异的现象。一批100条语句的更新过程中,同步到目标库去执行,总会有几条记录出现更新失败。 原因 1. 查看了同步过程中的执行日志,也米有啥特别明显的问题,单就是update affect = 0 。 2. 问题的查找方式也是比较简单,针对...

2012-03-28 17:33:55 234 0

java Date.getTime()返回负数异常情况分析

背景   在线上运行的一个数据库同步系统,突然在某一天发现了一条奇怪的数据。 出现了如下异常:   SQL state [99999]; error code [17361]; Year out of range.; nested exception is java.sql.SQLExcep...

2012-03-15 13:42:04 442 0

BeanMapping发布1.0.1版本

背景   BeanMapping是什么? 请查看我之前的一篇文章:  我也造了个轮子:BeanMapping(属性拷贝)  现状   目前代码经过在一个实际项目中进行试用,该项目为公司的核心业务逻辑(产品页面数据),目前表现良好。      在原先的1.0.0版本基础上修复了几个bug,...

2012-01-31 14:48:06 38 0

ThreadPoolExecutor几点使用建议

背景 前段时间一个项目中因为涉及大量的线程开发,把jdk cocurrent的代码重新再过了一遍。这篇文章中主要是记录一下学习ThreadPoolExecutor过程中容易被人忽略的点,Doug Lea的整个类设计还是非常nice的   正文 先看一副图,描述了Thread...

2011-12-06 11:47:39 40 0

zookeeper学习&使用系列文章

近段时间,因项目需要接触了下zookeeper,通过阅读源码以及项目中的使用总结,慢慢的积累了zookeeper的一系列的学习总结。 希望对大家使用zookeeper有所帮助,同时如有描述欠佳的地方尽情拍砖。 zookeeper是什么?  ZooKeeper是一个分布式的,开放源码...

2011-12-05 19:33:06 35 0

zookeeper学习记录三(session,watcher,persit机制)

背景 继续前面的zookeeper学习的专题,这次主要是结合项目中遇到的一些问题,进一步学习了下zookeeper的一些内部机制。   针对以下几个问题: 1. zk是否可以保证watcher事件不丢失? 2. zk的EPHEMERAL节点的自动过期时间?  3. zk的如何保证节点数...

2011-12-05 19:02:53 81 0

mysql几个参数(编码,预编译,批处理)

背景  这两天在做数据同步项目的联调,测试过程中发现针对mysql的一些使用上存在一些问题,比如batch不起效果,编码问题,预编译失效等等。 这里总结一下,做一下记录,希望对遇到类似问题的有所帮助 内容 编码问题 官方文档: http://dev.mysql.com/doc/refman...

2011-11-22 16:08:01 169 0

操作database TableMeta几点内容

背景    今天早上,领导给了我一个任务:在老的系统运行中,DBA反馈说获取database TableMeta操作有点慢,让我分析下基于oracle driver驱动是否可以做下优化。由此引出了本文,仅仅做一个记录。 内容 在补充几点背景知识:   1.  老系统介绍 老系统主要负...

2011-11-15 19:47:59 96 0

模拟机预约程序(考驾照)

背景  最近1个多月周末都忙着在练车,准备年前考个驾照。 之前预约了一次模拟机,结果因临时有事没去成。 想再预约,就得排到3个星期之后。 所以无奈写了个自动预约的程序,等着别人取消预约后,模拟进行预约。 过程 整个代码实现起来不复杂,主要是在一些HTTP请求的模拟上,为了图方便直接用...

2011-10-24 11:32:30 315 0

使用jetty做为server提供多线程文件下载

背景   最近在做的一个项目,两个java进程之间会涉及一个大数据量的传递过程,基本都是图片文件,(做了压缩后还是会比较大,最大的有超过600MB)。其次这两个java进程是在跨机房,比如中国和美国机房,网络待框也就几百kB。     这就是本文的项目背景 分析 1.  600MB的文件...

2011-10-11 15:35:36 36 0

基于zookeeper的分布式lock实现

背景  继续上一篇文章:http://agapple.iteye.com/blog/1183972 ,项目中需要对分布式任务进行调度,那对应的分布式lock实现在所难免。    这一周,在基于BooleanMutex的基础上,实现了zookeeper的分布式锁,用于控制多进程+多线程的loc...

2011-09-30 17:00:15 70 0

zookeeper项目使用几点小结

背景   前段时间学习了zookeeper后,在新的项目中刚好派上了用场,我在项目中主要负责分布式任务调度模块的开发,对我自己来说是个不小的挑战。   分布式的任务调度,技术上我们选择了zookeeper,具体的整个分布式任务调度的架构选择会另起一篇文章进行介绍。     本文主要是介绍自...

2011-09-30 15:55:21 171 0

基于AQS实现互斥信号(BooleanMutex)

背景   最近一个月都在做项目,我主要负责分布式任务的调度的功能,需要实现一个分布式的授权控制。   具体的需求:   1.  首先管理员启动整个任务,并设置执行权限   2.  工作节点收到消息后就会创建对应的线程,并开始执行任务(任务都是由一个管理员进行分配)   3.  运行过程中...

2011-09-30 15:02:37 80 0

网站应用部署介绍(apache,jetty,jboss,tomcat)

先前在部门做的一个分享,主要是介绍一下当前公司网站应用中的一些部署情况。   文档中的主要内容: 架构发展过程 apache使用情况 apache相关配置例子 mod_jk配置参数 mod_proxy配置参数 jboss简单介绍 tomcat配置参数 jetty介绍&...

2011-08-24 12:40:28 33 0

常用的linux系统监控命令

  记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了 找到最耗CPU的java线程 ps命令 命令:ps -mp pid -o THREAD,tid,time   或者  ps -Lfp pid 结果展示:   这个命令的作用,主要是可以获取到对应一个进程...

2011-08-24 12:22:20 110 0

neo4j简单学习

背景 最近在一些论坛或者新闻里看到了neo4j,一种擅长处理图形的数据库。 据说非常适合做一些join关系型的查询,所以抽空也看了下相关文档,给自己做个技术储备。   过程 深入学习之前,先在网上找了一下别人的一个学习文档总结,踩在别人的肩膀上总是最快,最有效的学习。   http:...

2011-07-20 20:43:04 117 0

git/svn diff可视化工具配置

 以前一直使用svn diff / git diff,看到的都是console下的对比提示。 今天花了点时间找了一款工具,基于GUI的diff操作。   软件 选择的是p4merge , 下载路径: http://www.perforce.com/perforce/downloads/ind...

2011-07-12 23:18:49 103 0

googlecode deploy to mvn repo(续)

背景 继上一篇,已经成功尝试了deploy到google svn上,接下来尝试deploy到maven central repo 过程 参考资料:http://maven.apache.org/guides/mini/guide-central-repository-upload.html...

2011-07-08 18:55:54 26 0

googlecode deploy to mvn repo

背景   前段时间在整的BeanMapping,功能开发和单元测试已经基本完善,准备release一个新版本。花了点时间找了下,如何deploy到maven central(http://repo1.maven.org/maven2/),方别客户端使用。   在测试过程中,我先找了googl...

2011-07-05 19:01:31 35 0

zookeeper学习记录(二)

背景 继上一篇的zookeeper的学习,上一篇主要偏向于zookeeper的总体结构的熟悉和使用层面。 本文主要是记录自己学习其内部的选举算法,一致性处理策略。 过程 在开始之前,推荐几篇比较不错的文章: http://rdc.taobao.com/blog/cs/?p=162  ...

2011-07-01 10:06:54 66 0

zookeeper学习记录

背景    前段时间看了S4流计算引擎,里面使用到了zookeeper进行集群管理,所以也就花了点时间研究了下zookeeper,不求看懂所有源码,但求了解其实现机制和原理,清楚其基本使用。这也是为后续hadoop,gridgain的分布式计算的产品。 学习 首先就是收集一些前人的一些学习资...

2011-06-30 17:45:46 158 0

BeanMapping新的功能点(6月22号)

What is BeanMapping ? 可以提前看一下原先的帖子: 我也造了个轮子:BeanMapping(属性拷贝)   新增功能(亮点):  1.  Convertor转化处理 支持(int,long,short,byte,char,boolean,float,...

2011-06-22 19:49:17 54 0

原创 S4分布式流计算引擎

背景   最近花了点时间研究了下分布式计算这一块的内容。领导给的第一个任务,就是学习下S4和GridGain。花了几天的时间把s4的源码看了下,把自己的理解和学习的内容做一个记录。 下一篇会是GridGain的分享 学习 s4的论文: S4: Distributed Stream Comp...

2011-06-20 18:11:13 81 0

提示
确定要删除当前文章?
取消 删除