`
agapple
  • 浏览: 1580372 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
背景    08年左右,阿里巴巴开始尝试MySQL的相关研究,并开发了基于MySQL分库分表技术的相关产品,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从Oracle数据迁移到MySQL上,完成去IOE的第一步.    项目介绍 名称:   yugong 译意:   愚公移山 语言:   纯java开发 定位:   数据库迁移 (目前主要支持oracle -> mysql/DRDS)     项目介绍 整个数据迁移过程,分为两部分 ...
  项目背景    阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。    otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otte4。 目前同步规模: 同步数据量6亿 文件同步1.5TB(2000w张图片) 涉及200+个数据库实例之间的同步 80+台机器的集群规模   项目介绍 名称:ott ...
   背景    早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps. 目前内部使用的同步,已经支持mysql5.x和oracle部分版本的日志解析   基于日志增量订阅&消费支持的业务: 数据库镜像 数据库实时备份 多级索引 (卖家和买家各自分库索引) search build 业务cache刷新 价格变化 ...
背景     最近公司在大力推进服务化平台,我在中间主要做一个orm框架,解决model和数据源之间的映射问题。这里不选择已有的hibrenate,主要考虑自己公司的一些特殊场景:比如多数据源(数据库,搜索引擎,memcached,nosql等 ...
背景    前段时间在做应用的性能优化时,分析了下整体请求,profile看到90%的时间更多的是一些外部服务的I/O等待,cpu利用率其实不高,在10%以下。 单次请求的响应时间在50ms左右,所以tps也不会太高,测试环境压力测试过程 ...
背景      前段时间一直在做应用容器的迁移,将公司的应用容器从jboss,tomcat统一迁移到jetty。在整个迁移过程中遇到最多的潜在问题还是在classloader机制上,这里记录一下希望能对大家有所帮助,避免重复走弯路。   啥都不说,先来看下遇到的几个问题,比较纠结的问题。 问题1: (jar sealed问题) Caused by: java.lang.SecurityException: sealing violation: package com.sun.media.jai.util is sealed at java.net.URLClassLo ...
相关性能测试和使用例子,可以参见另一篇文章: cglib相关性能测试对比  背景     前段时间在工作中,包括一些代码阅读过程中,spring aop经常性的会看到cglib中的相关内容,包括BeanCopier,BulkBean,Enancher等内容,以前虽大致知道一些内容,原理是通过bytecode,但没具体深入代码研究,只知其所用不知其所以然,所以就特地花了半天多的工作时间研究了CGLIB的相关源码,同时结合看了下 spring Aop中对CGLIB的使用。     本文主要通过对cglib有原理的分析,反编译查看源码,例子等方式做一个介绍。 cglib基本信息 ...
背景 先前开源了一个开源项目: 【阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费】  本文主要是介绍一下canal支持mariadb协议上的变化.    协议变化 mariadb5.5 mariadb5.5主要是基于mysql5.5的原型,类型定义基本没 ...
  快速体验 1.  首先需要先启动canal server,可参见:Canal Server的QuickStart 2.  运行canal client,可参见:canal client的ClientExample   如何下载 1.  如果是maven用户,可配置mvn dependency <dependency> <groupId>com.alibaba.otter</g ...
背景 先前开源了一个开源项目: 【阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费】    本文主要是介绍一下canal1.0.3支持mysql5.6协议上的变化.    协议变化 1.   binlog checksum     mysql5.6之后,支持在binlog对象中增加checksum信息,比如CRC32协议.   其原理主要是在原先binlog的末尾新增了4个byte,写入一个crc32的校验值.      对应参数说明: http://dev.mysql.com/doc/refman/5.6/en/replication-optio ...
背景    先前开源了一个开源项目: 【阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费】     本文主要是介绍一下如何给canal贡献代码,介绍其设计思路和扩展方式   设计  说明: server代表一个canal运行实例,对应于一个jvm instance对应于一个数据队列  (1个server对应1..n个instance) instance下的子模块: eventParser (数据源接入,模拟slave协议和master进行交互,协议解析) eventSink (Parser和Store链接器,进行数据过滤,加工,分发的工作) ...
 背景    先前开源了一个开源项目: 【阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费】     本文主要是介绍一下如何部署&使用   环境要求 1. 操作系统     a.  纯java开发,windows/linux均可支持     b.  jdk建议使用1.6.25以上的版本,稳定可靠,目前阿里巴巴使用基本为此版本.    2. mysql要求    a. 目前canal支持mysql 5.5版本以下,对mysql5.6暂不支持,(mysql4.x版本没有经过严格测试,理论上是可以兼容)    b. canal的原理是基于m ...
背景   最近在做一个项目,代码都已经托管到github上,准备走开源路线。 项目: 一个重大轮子: 基于mysql数据库binlog的增量订阅&消费    使用了github的issue tracker代码,本文记录一下如何使用github管理release notes,希望能给 ...
背景    这两天在线上运行的mysql数据库同步,过个1,2天就爆了一次内存,所以dump了一下jvm内存信息分析了下,发觉就是tablemap对象的cache是一个罪魁祸首,2G的old区,平均被4个同步任务划分掉。      解释下,缓存tablemap的意义:    a.  insert/update/delete语句操作数据库时,在binlog中会产生两条binary log,第一条就是table map,告诉你改了的表信息。第二条才是具体的变更操作,通过一个tableId进行关联。    b.  通过tableId缓存,可以在执行insert/update/delete解 ...
Canal介绍       基于mysql数据库binlog的增量订阅&消费   ClientExample 依赖配置:(目前暂未正式发布到mvn仓库,所以需要各位下载canal源码后手工执行下mvn clean install -Dmaven.test.skip) <dependency> <groupId>com.alibaba.otter</groupId> <artifactId>canal.client</artifactId> <version>1.0.1-SN ...
Global site tag (gtag.js) - Google Analytics