SRE总结

SRE是一个体系化工程,包括Pre-MTBF,MTTR(MTTI,MTTK,MTTF,MTTV),Post-MTBF;衡量标准包括:故障时间维度,请求维度,SLI 监控的指标、SLO 指标对应的目标;包括系统层面、应用服务器层面、应用运行层面、PaaS层面、数据层面、业务层面;SLI指标方法 VALET volume、Availablity、Latency、Errors、Tickets;错误预算,燃尽图,故障定级;衡量SLO有效性三组指标:达成情况、人肉投入程度、用户满意度。落地SLO 包括确认核心交易链路、确认强弱依赖关系,核心链路要求更严格、弱依赖需要降级,核心依赖共享Error Budget,验证 核心链路 SLO包括:容量压测、混沌工程。 实践,on-call机制,也就是确认 MTTI部分;故障处理,角色分工,故障排查中定期汇报,问题扩大需要运营侧公开反馈。故障复盘:故障原因?怎样保证不出现类似问题?怎样短时间恢复业务?互联网的SRE组织架构,根据分布式架构慢慢推动演化了组织架构。以赛带练

阅读全文

Spark的一些优化

web-ui观察 executor指标:失败,shuffle,cache,CPU,内存,RDD数量,GC;stage关注 DAG,也是shuffle等数据,还有 Event Timeline。shuffle优化方式:增加并行度,group by变成局部聚合+全局聚合;转为 BHJ,大表 join 大表的 外表加盐,内表复制N份,再去盐gourp原始id,最后聚合;shuffle原理,HashShuffleManager(废除),SortShuffleManager。 with 缓存优化,查询下推,自动倾斜join优化,LIMIT大数量优化,bucked join,4表join转为2个2个join增加并行度。RSS,向量化, AQE

阅读全文

DataX和Canal相关

DataX:读写插件,Job任务拆分,Task和Task Group,transform(filter,substr,replace,可自定义),流控,脏数据,数据库冥等写入,ETL架构。Canal:Server(服务端-客户端模式,嵌入式模式),多个instance,包括:eventParser (数据源接入,模拟slave协议和master进行交互,协议解析)、eventSink (Parser和Store链接器,进行数据过滤,加工,分发的工作)、eventStore (数据存储)、metaManager (增量订阅&消费信息管理器)

阅读全文

微服务架构

五种暗能量:Simple components、Team autonomy、Fast deployment pipeline、Multiple technology stacks、Segregate by characteristics、;Service collaboration patterns:Saga 模式、CQRS 模式、;Communicate、MessagingAPI composition;一些重要的设计:、Database per Service pattern、API Gateway pattern、Circuit Breaker、Access token。可观测性模式:Log aggregation、Application metrics、Audit logging、Distributed tracing、Exception tracking、Health check API、Log deployments and changes。Testing patterns:Service Component Test、Service Integration Contract Test。UI 模式:Server-side page fragment composition、Client-side UI composition

阅读全文

Kafka架构

producer, broker, consumer,consumer group消费对应的partition数据,partition 包括多个 log segment,当一个达到阈值后,变成read only,再生成一个新的;每次都是head或者tail读,以及append写,速度很快,另外用了page cache会将数据写先到缓存再刷新;每个分区都有一个leader,副本只用于备份不做读写处理;副本如果能跟上leader就会放到 ISR集合中,ISR集合中最小的读确认offset 就是高水位,低水位是下次写的offset;producer 用 ack=0、1、all来表示副本节点是否接受了消息;ZK 后面迁移到了 Z-Raft 了,还有分层存储;kafka balance 是 NP问题,kafka connect,kafka streams;未来发展:完全基于云的kafka,用C++重写的kafka,数据存储在S3上的 statefulness 的kafka

阅读全文

scala summary

高阶函数、函数柯里化、隐式转换(类型,对象),lazy延迟计算、最后一行默认返回return。内置的可变 不可变集合、自动类型推导、操作符重载、模式匹配、内部函数、对象的apply和unapply、None和Some以及Option。foldLeft ,增强的for 循环,协变、逆变,上界 和 下界

阅读全文

大数据上云

大数据平台上云的问题:集群管控方式变了,YARN调度系统变了;安全性问题、DDos、数据治理问题;成本问题,计费策略;存储迁移,HDFS -> S3 语义的变化;多云高可用方案;混合云方案;适配其他业务线

阅读全文

Spark中的 parquet 原理

Spark执行Delta的过程,通过自定义的format格式,到DataFrameWriter.saveToV1Source,在是到DeltaDataSource#createRealation,写入做优化事务处理,再用FileFormatWriter创建多个Task并行写入,之后就是到Parquet内部执行阶段。Parquet包含Row Groups,往下是Column Chunk,再往下是Page,文件尾部包含Footer和一些元数据信息。Spark是按行写入的,一次写一行,每行写对应的 column。Parquet编码包括Dictionary Encoding、Run Length Encoding (RLE)、Delta Encoding。读取的主要类是VectorizedParquetRecordReader执行一批读取,调用VectorizedColumnReaders(对应每个column),再调用VectorizedValuesReader(读取一个column中的一段数据),返回由上层应用消费 。

阅读全文