摘要: Flink 中可以使用一套 API 完成对有界数据集以及无界数据的统一处理,而无界数据集的处理一般会伴随着对某些固定时间间隔的数据聚合处理。比如:每五分钟统计一次系统活跃用户、每十秒更新热搜榜单等等 这些需求在 Flink 中都由 Window 提供支持,Window 本质上就是借助状态后端缓存着一 阅读全文
posted @ 2022-07-24 19:23 Single_Yam 阅读(695) 评论(0) 推荐(0) 编辑
摘要: Flink 作为有状态计算的流批一体分布式计算引擎,会在运行过程中保存很多的「状态」数据,并依赖这些数据完成任务的 Failover 以及任务的重启恢复。 那么,请思考一个问题:如果程序升级迭代调整了这些「状态」的数据结构以及类型,Flink 能不能从旧的「状态」文件(一般就是 Savepoint 阅读全文
posted @ 2022-07-17 17:43 Single_Yam 阅读(846) 评论(0) 推荐(0) 编辑
摘要: Flink 作为新一代基于事件流的、真正意义上的流批一体的大数据处理引擎,正在逐渐得到广大开发者们的青睐。就从我自身的视角看,最近也是在数据团队把一些原本由 Flume、SparkStreaming、Storm 编写的流式作业往 Flink 迁移,它们之间的优劣对比本篇暂不讨论。 近期会总结一些 F 阅读全文
posted @ 2022-07-13 13:34 Single_Yam 阅读(860) 评论(0) 推荐(0) 编辑
摘要: 『建造者模式』是一种简化复杂对象构建过程的设计模式,他的核心夙愿是:把对象的构建和表述分离。 举个栗子 每种食品包装上都会有一个营养成分表,每份的含量、每罐的含量、每份卡路里、脂肪、碳水化合物、钠等,还可能会有其他 N 种可选数据,大多数产品的某几个成分都有值 那么我们表述这个食品类: public 阅读全文
posted @ 2021-04-20 09:20 Single_Yam 阅读(442) 评论(0) 推荐(1) 编辑
摘要: 今天聊一聊大家最耳熟能详的设计模式,『工厂模式』。实际上这个设计模式有三个变种,分别是『简单工厂模式』、『工厂方法模式』以及『抽象工厂模式』,可能大部人所熟知的是前两种,抽象工厂模式有一定的场景限制,很少出现在大家的视野中,不过今天我们一并谈一谈。 简单工厂模式 简单工厂说白了就是一个超级工厂,他可 阅读全文
posted @ 2021-04-18 19:13 Single_Yam 阅读(11368) 评论(1) 推荐(0) 编辑
摘要: 『单例模式』是一种创建型的设计模式,保证一个类只有一个实例,并提供一个访问它的全局访问点。 在一个系统中,一个类经常会被使用在不同的地方,通过单例模式,我们可以避免多次创建多个实例,从而节约系统资源。 单例模式往往有三个特征,一个类只能有一个实例,它必须自行提供实例的创建,它必须提供方法暴露此实例。 阅读全文
posted @ 2021-04-16 20:50 Single_Yam 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 今天和大家聊『状态模式』这个设计模式,也是由于业务上遇到了一个极其难以维护的订单状态,不得不去重构。 阿里规约其中就有一条: 简单来说,状态模式用于消除冗余的大量『if else』判断。 举个例子 业务中有一个订单表,其中订单状态大约有如下十多种,我们维护在一个枚举类型中。 接着,我们有一个 ser 阅读全文
posted @ 2021-04-14 20:30 Single_Yam 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 又是一季 “金三银四” ,你面试了吗? Q1:String、StringBuffer、StringBuilder 有什么区别? Tips:首先要整理出 String 的基本特性,Immutable、不可变等特性,其次是后两者与前者的区别,最后是 StringBuffer 与 StringBuilde 阅读全文
posted @ 2021-04-13 23:15 Single_Yam 阅读(924) 评论(0) 推荐(0) 编辑
摘要: 上一篇我们介绍了 redis 主从节点之间的数据同步复制技术,通过一次全量复制和不间断的命令传播,可以达到主从节点数据同步备份的效果,一旦主节点宕机,我们可以选择一个工作正常的 slave 成为新的主节点,并让其他 slave 去同步它。 这是处理 redis 故障转移的一个方式,但却不具备生产实用 阅读全文
posted @ 2020-04-11 09:31 Single_Yam 阅读(24635) 评论(1) 推荐(2) 编辑
摘要: 基于前面介绍的 Redis 内容,Redis 只能作为一个单机内存数据库,一旦服务器宕机即不能提供服务,即便能通过持久化策略重启恢复数据,往往也做不到百分之百还原。再一个就是,单机的 Redis 需要处理所有的客户端请求,包括读和写操作,压力很大。 说了这么多,Redis 当然也提供了解决方案,主从 阅读全文
posted @ 2020-03-29 21:25 Single_Yam 阅读(1296) 评论(0) 推荐(0) 编辑