设计模式

设计模式
设计模式

面向对象 设计原则单一职责原则(SRP) 如何理解单一职责原则(SRP)?一个类只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的类。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。 如何判断类的职责是否足够单一? 不同的应用场景、不同阶段的需求背景、不同的业务层面,对同一个类的职责是否单一,可能会有不同的判定结果。实...

Flink-Flink Storm SparkStream对比

Flink
Flink-Flink Storm SparkStream对比

Flink、SparkStream和Storm对比概述Flink、Spark Streaming、Storm都可以进行实时计算,但各有特点。 在大数据处理领域,批处理任务和流处理任务一般被认为是两种不同的任务,一个大数据框架一般会被设计为只能处理其中一种任务。例如Storm只支持流处理任务,而MapReduce、Spark只支持批处理任务。Spark Streaming是...

Flink-运行时架构

Flink
Flink-运行时架构

Flink基本组件栈Flink基本组件栈如下图: Flink的架构体系同样也遵行分层架构设计的理念,基本上分为三层,API&Libraries层、Runtine核心层以及物理部署层。 API&Libraries层:提供了支撑流计算和批计算的接口,同时在此基础之上抽象出不同的应用类型的组件库。 Runtime 核心层:负责对上层不同接口提供基础服务,支...

Flink-入门

Flink
Flink-入门

Flink入门Flink简介Apache Flink是一个面向数据流处理和批量数据处理的可分布式的开源计算框架,它基于同一个Flink流式执行模型(streaming execution model),能够支持流处理和批处理两种应用类型。 由于流处理和批处理所提供的SLA(服务等级协议)是完全不相同, 流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支...

MySQL-实践三

MySQL
MySQL-实践三

JOIN语句的执行原理我们通过创建两个表 t1 和 t2 来说明,这两个表的结构一模一样,有三个字段(id, a, b),字段a建立普通索引,我们往t1表插入100条数据,t2插入1000条数据。 Index Nested-Loop Join(NLJ)我们执行如下SQL语句: 1select * from t1 straight_join t2 on (t1.a=t2.a...

Scala-语法

Scala
Scala-语法

Scala-语法12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394...

Scala-高阶

Scala
Scala-高阶

Scala-高阶12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394...

MySQL-实践二

MySQL
MySQL-实践二

binlog 和 redo log详解binlog 的写入机制binlog 的写入逻辑比较简单:事务执行过程中,先把日志写到 binlog cache,事务提交的时候,再把 binlog cache 写到 binlog 文件中。一个事务的 binlog 是不能被拆开的,因此不论这个事务多大,也要确保一次性写入。 系统给 binlog cache 分配了一片内存,每个线程一...

Spark-入门

Spark
Spark-入门

Spark介绍Spark,是一种通用的大数据计算框架,正如传统大数据技术Hadoop的MapReduce、Hive引擎,以及Storm流式实时计算引擎等。 Spark使用Spark RDD、Spark SQL、Spark Streaming、MLlib、GraphX成功解决了大数据领域中,离线批处理、交互式查询、实时流计算、机器学习与图计算等最重要的任务和问题。 Spar...

MySQL-实践一

MySQL
MySQL-实践一

普通索引和唯一索引的选择普通索引和唯一索引的查询过程对比例如:我们查询一个 where k=5 条件的SQL语句,这个查询语句在索引树上查找的过程,先是通过 B+ 树从树根开始,按层搜索到叶子节点,然后可以认为数据页内部通过二分法来定位记录。 对于普通索引来说,查找到满足条件的第一个记录 (5,500) 后,需要查找下一个记录,直到碰到第一个不满足 k=5 条件的记录。...

×
  • {title}