接着上一节…… 做好了切分工作,下一步当然就是对对应的各个任务进行任务托管和监控:schedule,post,postHandle,invokeHooks。 schedule首先完成的工作是把上一步reader和writer split的结果整合到具体的taskGroupContainer中。
int channelsPerTaskGroup = this.configuration.getInt(
CoreConstant.DATAX_CORE_CONTAINER_TASKGROUP_CHANNEL, 5);
int taskNumber = this.configuration.getList(
CoreConstant.DATAX_JOB_CONTENT).size();
this.needChannelNumber = Math.min(this.needChannelNumber, taskNumber);
PerfTrace.getInstance().setChannelNumber(needChannelNumber);
初始认识Datax是刚进入公司的第二个月,当时数据中心架构表现极其不稳定,原本从线上数据库定时同步数据到Hdfs做中转清洗,最后再插入到部门mysql,但是由于服务器资源占用和程式本身的不稳定性,凌晨执行的任务失败后得早上上班才能执行,并且执行过程超过四个小时,严重阻碍了正常工作。鉴于此,经过调研和对整套体系的熟悉,发现使用Datax直接可以用来替代现有的中转流程,并且实践证明比原来的效率提高了50%,整个ETL流程只需要一个多小时。现在整套服务基本稳定运行,本着更加懂它用它的原则,开始看Datax的源代码。
一般意义上的SSM项目中,Mybatis提供两级缓存机制,一级缓存是session级别,每一个会话一个缓存,二级缓存是namespace级别,针对每一个特定的namespace做全局缓存。但是,Mybatis自带的缓存仅仅也适用于Mapper中只有单表操作,而且二次开发并不是很方便。从自身项目出发,结合当前业务和服务特点,选择服务自身存在的redis作为缓存中间件,通过Spring的AOP拦截机制去对每一个Mybatis的namespace接口做监测,从而达到缓存提高查询效率的目的。
时间上来说,刚好毕业后工作一年。经过了很多事物的变迁,也折腾了蛮久,从不知疲倦的各地实习,到毕业后到广告公司工作,从刚开始读书时候自学c++,到后来在导师要求 下快速学习Java,再到后来正式工作后的Golang和Java混合开发。本着多学点,多看点的原则,朝着技术趋势--所谓大数据。接触新东西是挺新鲜,但是也有些抗拒,Java算是老牌的开发语言, 适合做web服务,当前语言流行趋势前三。但是对比Golang来说,会比较重,也不够精简,当然从语言的成熟度上来说,Java更胜一筹。
项目模板来源于https://github.com/Gaohaoyang/gaohaoyang.github.io,由于自己对前端技术不是很熟悉,好几次想建个博客都打住了.开源偶然的机会看到github本身 自带了博客功能,就找了很多开源项目看效果.但是github本身的博客构建系统是有限制的,无法加载重量级的前端项目,异步数量也不能太多, 考虑之后,就专注找HTML,CSS这类型的博客来弄,最后比较了两个感觉还好的博客,选择了现在的这个模板。
感觉这个模板比较适合前端新手,通用/简洁/较轻量/好操作 很高兴自己终于建立了自己的小小博客,以后可以写写文章,聊聊人生.
欢迎大家前来一起讨论,一起进步!!!