2024年11月4日
覆盖网络,Flannel 的 UDP模式、xvlan模式、host-gw,Calico 采用了BGP做三层转发,为防止退化为 IPIP,需要设置 BGP 的跳数。 使用 Network Policy 做网络隔离,k8s 的网络本质都是连通的,像是弱多租户。CNI 插件 的网络插件。Service 是由 kube-proxy 组件,加上 iptables 来共同实现的;所谓 Ingress,就是 Service 的“Service”。 调度:根据 etcd 的变化选择合适的 Node 做调度,Priorities为节点打分;Pod 调度失败的情况(抢占、优先级);K8S 中两个不可替代的组件:kube-apiserver、kubelet;核心是循环控制器检查,容器运行时:CRI,除了docker还有containerd,基于虚拟化的:Kata Containers、gVisor
阅读全文
2024年10月24日
工作简介,包括几份工作的主要工作内容、详细工作内容的链接、产品的架构设计图等
阅读全文
2024年10月15日
高阶函数、函数柯里化、隐式转换(类型,对象),lazy延迟计算、最后一行默认返回return。内置的可变 不可变集合、自动类型推导、操作符重载、模式匹配、内部函数、对象的apply和unapply、None和Some以及Option。foldLeft ,增强的for 循环,协变、逆变,上界 和 下界
阅读全文
2024年10月2日
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中的一段数据),返回由上层应用消费 。
阅读全文
2024年9月9日
spark streaming的基本原理,包括MicroBatchExecution,ContinuousExecution,通过IncrementalExecution + 状态实现micro-batch 并复用了spark 的所有查询逻辑;Source接口支持 getOffset,commit,可以自定义各种扩展实现;Sink包括:FileStreamSink、KafkaSink、DeltaSink、、ForeachBatchSink,ForeachWriteTable;Stateful将信息存如StateStoreRDD,保存到 HDFSBackedStateStoreProvider、RocksDBStateStoreProvider 中;Stream-Stream Join使用了StreamingSymmetricHashJoin,需要保证状态;Session Window同样也是通过插入一些流相关的算子 + 状态保存实现的
阅读全文
2024年8月25日
对 OpenLogReplicator 的一些改动,支持ASM 文件读取,支持 RAC 多个活跃节点,高可用等
阅读全文
2024年5月5日
Janino的一些例子,Expression Evaluator,Script Evaluator,Class Body Evaluator,Simple Compiler,as a Source Code Class Loader,jsh - the Java shell,Compiler Plugin for Tomcat,code analysisi,debug
阅读全文