随笔 - 62  文章 - 11 评论 - 103 trackbacks - 0

正文内容加载中...
posted @ 2018-01-10 21:52 nick hao 阅读(2936) 评论(0) 编辑
摘要: 在以前的文章中,我们介绍过使用Gauva实现限流的功能,现在我们来了解一下如何在服务框架中实现熔断和降级的方法。 简介Hystrix 大型系统架构的演进基本上都是这样一个方向:从单体应用到分布式架构。这个演进过程离不开一个字“拆”,我们会把一个系统拆成很多子系统,子系统之间一定会存在依赖,有的是强依阅读全文
posted @ 2017-12-24 18:18 nick hao 阅读(302) 评论(0) 编辑
摘要: Flume Sink的目的是从Flume Channel中获取数据然后输出到存储或者其他Flume Source中。Flume Agent启动的时候,它会为每一个Sink都启动一个SinkRunner的对象,SinkRunner.start()方法会启动一个新的线程去管理每一个Sink的生命周期。每阅读全文
posted @ 2017-09-13 21:55 nick hao 阅读(1019) 评论(0) 编辑
摘要: 在elastic-job详解(三):Job的手动触发功能一文中讲到了如何手动触发一个Job,但是我们手动触发的时候常常需要输入一些参数。举个栗子:我们有个日统计报表,每天凌晨统计一次,统计上一天的数据。但我们发现几天前的某一天的数据有问题,需要重跑统计。这就需要统计程序能执行指定某一天的数据。这个功阅读全文
posted @ 2017-09-08 11:06 nick hao 阅读(2568) 评论(0) 编辑
摘要: elastic-job中最关键的特性之一就是失效转移。配置了失效转移之后,如果在任务执行过程中有一个执行实例挂了,那么之前被分配到这个实例的任务(或者分片)会在下次任务执行之前被重新分配到其他正常节点实例上执行。 简单的HA 当某一个任务实例节点宕机(离开与zookeeper的连接),会触发elastic-job主节点的重新分片逻辑。elastic-job启动任务节点以后生成的zookeepe...阅读全文
posted @ 2017-06-23 07:50 nick hao 阅读(7340) 评论(0) 编辑
摘要: elastic-job的任务都是使用quartz来触发的,quartz表达式一般都是定期执行。但有时候一些周期较长的任务,比如一天一次,几小时一次的任务,我们需要等待很久才能触发一次。如果我们需要测试一些功能,或者说重跑一些任务的话,手动触发任务功能就变得尤为重要,也是任务框架一般都必须要实现的特性阅读全文
posted @ 2017-06-10 06:37 nick hao 阅读(9375) 评论(1) 编辑
摘要: JobScheduler是elastic-job作业调度的关键类,也是起始类,在包com.dangdang.ddframe.job.lite.api下。调度任务的执行需要包含两大步骤:任务的配置和任务的注册。JobScheduler的构造函数除了任务配置和注册相关信息之外还有事件和监听。后两者是el阅读全文
posted @ 2017-06-03 16:53 nick hao 阅读(11942) 评论(0) 编辑
摘要: 数据分片的目的在于把一个任务分散到不同的机器上运行,既可以解决单机计算能力上限的问题,也能降低部分任务失败对整体系统的影响。elastic-job并不直接提供数据处理的功能,框架只会将分片项分配至各个运行中的作业服务器(其实是Job实例,部署在一台机器上的多个Job实例也能分片),开发者需要自行处理分片项与真实数据的对应关系。框架也预置了一些分片策略:平均分配算法策略,作业名哈希值奇偶数算法策略,...阅读全文
posted @ 2017-05-29 23:48 nick hao 阅读(21508) 评论(0) 编辑
摘要: 单机定式任务调度的问题 在很多应用系统中我们常常要定时执行一些任务。比如,订单系统的超时状态判断、缓存数据的定时更新、定式给用户发邮件,甚至是一些定期计算的报表等等。常见的处理方式有线程的while(true) 和sleep组合、使用Timer定时器触发任务又或者是使用quartz框架。貌似这些方法可以完美的解决方案,为什么还需要分布式呢?主要有如下两点原因: 1.高可用:单机版的定式任务调度...阅读全文
posted @ 2017-05-21 21:39 nick hao 阅读(30308) 评论(2) 编辑
摘要: HBase是Apache Hadoop生态系统中的重要一员,它的海量数据存储能力,超高的数据读写性能,以及优秀的可扩展性使之成为最受欢迎的NoSQL数据库之一。它超强的插入和读取性能与它的数据组织方式有着密切的关系,在逻辑上,HBase的表数据按RowKey进行字典排序, RowKey实际上是数据表阅读全文
posted @ 2017-05-09 22:04 nick hao 阅读(6684) 评论(0) 编辑