Home

Scala调度器Aloha关注点

Overview 一直想自己弄一个分布式调度器,感觉一个调度器包含了比较全面的架构知识点, 比如,rpc,分布式master-slave(worker),HA,元数据,数据库,并发,异步,调度 今天刚好再公众号里面看到介绍的Aloha,而且还是scala写的,之前看的Oozie和jobnavi都是java写的。那么看看这个Aloha是如何工作的,一步一步分解她的各个模块和工作流程,力求之后自己能够独立写出一个分布式调度器来:smile: 主体架构流程 Modules 这一节主要分解各个模块的架构和流程, 先认识一下里面的术语, master 主节点,一般情况下是有1个active,2个standby 保存了所有worker i...

Read more

iTerm2个人配置

Overview 之前一直在用Terminal.app,跟XShell有一些差异。想着用iTerm2试试磨合磨合,下面记录一下我的安装和配置记录。 安装 下载iTerm2 解压之后直接将iTerm.app放入Applications 双击iTerm.app 安装zsh 设置打开iTerm2模式使用zsh,chsh -s /bin/zsh 设置打开iTerm2模式使用bash,chsh -s /bin/bash 安装后的snapshot 配置 因为默认的配置和主题不是很match自己的style,所以做出了以下改动, 更换主题 更换和添加快捷键 跳词 ...

Read more

Scala ADT关注点

Overview ADT(Algebraic Data Type, 代数数据类型),是函数式编程(FP)构建组合类型的方式。 编程语言会内置一些基本类型(Primitive Data Types, Byte, Short, Int, Long, Float, Double, Boolean, Char),但是基本类型只能表示非常简单的值,无法对复杂的现实世界建模,因此编程语言还会提供将基本类型组合成复合类型。 不同编程语言提供了不同的构建组合类型的机制,例如,常见于C++,java的是结构体struct,类class,而在scala里面就是ADT。 代数模型有三类product、sum和Hybrid,常见是前两类, product,是一种组合,即A和B,如Tuple()...

Read more

分布式事务关注点

Reference 来了!阿里开源分布式事务解决方案Fescar 再有人问你分布式事务,把这篇扔给他 spark君第一篇图文讲解Delta源码和实践的文章 漫画:什么是分布式事务?

Read more

Celery多生产者部署的定时任务去重

Overview 最近在部署webserver,同一个应用(生产者)部署在3个机器上,3个机器都启用了Celery来启动定时任务,执行文件的增删。 可以看到在mq和celery worker阶段都可以做到高可用。但是在user application阶段,存在single point failure的情况,如果单点故障,定时任务就发送不到broker了。 而为了消除user application的SPF或者增加整体吞吐量,一般会部署多个application,而这样的情况,每个application都会发送相同的定时任务到broker,导致同一时间就会有多个task。 虽然增删的底层是原子性的,但是多个API同时执行,最后通过conflict来确认是不妥当的。为了解决...

Read more

劳动节回家

劳动节,回家,行山,发呆。 早上9点上的车,到家竟然是下午3点。平时90分钟的车程,因为塞车,硬是搞了半圈。 原本以为是今天早上会人少点,谁知道竟然更多。可能大家都选择休息一晚之后,才开始踏上路途了。 应该昨天晚上就回的,啊,失策了。 路上看了一部分hongjian的blog,发现自己看不懂,看不进。 车过了虎门之后,12点半了吧?紧尿,塞车,没办法,忍到了东升服务区,顺带吃了点饼干。 到家3点半了,放下奖牌和羊公仔,出发行山。先去了mashan,再去dadong。 全部处理完大概7点半了,天也开始黑了,laotou还打趣laoma,让她请吃饭,哈哈,中午因为我的塞车,午饭剩很多,就没有去外面了,回家喝了汤,吃了个油桃。 洗澡之后就开始吃饭,吃完饭,谢谢b...

Read more

搬家

之前在jianshu写,后来没有写,希望之后能在这捡起来。 可能前面迁移过程中有一些格式的不兼容,导致阅读体验差。之后遇到再逐一修复吧。 更新与20190528,jianshu的图片加入了防盗链,如果是刚刚打开过,是能够打开的,但是如果过了一段时间(24h)就不能再打开了,除非手动粘贴image url。 从github page已经无权限打开了,现在的方式是github issue。 操作与jianshu一样。希望后续的blog可以更好地组织起来吧。 要是想看之前的blog,并且图片可以正常展示,可以到我之前的jianshu blog看。

Read more

Scala设计模式

https://zhan-ge.gitbooks.io/scala/content/patterns-and-environment/design-patterns-categories.html 创建型 抽象工厂 工厂方法 惰性初始化 单例 对象池 建造者 原型 结构型 适配器 装饰器 桥接 组合 门面 享元 代理 行为型 值对象 Null 对象 策略 命令 职责链 解...

Read more

elasticsearch v6.3.0 monitor

Overview 上周四(0614)es推出了v6.3.0,期待已久的SQL和Rollups已经可以被使用,x-pack功能更加完善。想在此基础上,看看630的监控是怎么样。 监控 es最重要的目标是线上的稳定高性能,而稳定的定义就离不开监控。监控方式有多种, 通过curl命令定时抽取es的各项重点stats,然后输出到grafana 结合kibana,通过es官方提供的x-pack monitor/Marvel 瞬时状态监控Cerebro x-pack monitor 监控组织图 流程大概是: 安装带x-pack plugin的es和kibana 配置product-es-cluster的x...

Read more

2018年跑步总结

Overview 2018年共有12场比赛,完赛了9场,腰斩了1场,跟随了1场,弃赛了1场。 有特别感动的,有特别平淡的。烈似火,温如水。下面一一道来。 Collection 完赛 0121香港马拉松,358 三桥三隧不可怕,咬紧牙关深呼吸 0408巴黎马拉松,451 异国他乡,无惧风雨, 时尚之都,一起跑过。 0610兰州马拉松,445 深圳首飞,烈日双金。 0916北京马拉松,359 重返京城,冠军不再, 合唱国歌,鸣枪狂奔。 1014广州50越野,931 阔别三年,路犹在。 1118上海马拉松,335 魔都地上一日,思绪天上一年。 1202澳门马拉松,409 ...

Read more

20181216深马&1223汕马

深圳马拉松 1202澳门马拉松之后,休息了两周,接着迎来了深马,因为上马之后左脚背一直受伤,澳门也没有跑好,所以这次深马没有pb的信心,赛前qishen也劝说,我也应以随时退赛。 周六早上10点左右到市民中心领物,由于没有打印领物单,所以找了附近的打印店好久,与一周后的汕马电子签名不同,深圳一个如此现代化的城市,深圳通,腾讯乘车码,深圳公安都能电子接入,不知道为什么领物单不能引入电子签名,这样既方便各方跑友,又环保易存。 市民中心 打印后,领完物资,跟yuezhen和yingshen汇合,之后带她们放行李,然后吃了椰子鸡,之后去了人才公园。在人才公园涂抹了参赛包的红花油。之后分开,我回到楼下吃了斋面,买了水和红牛,之后上楼洗澡,跟chaoshen约好明早6点的车。 ...

Read more

LSM Compaction Strategy

Overview Compaction operations are expensive in terms of CPU, memory, and Disk I/O,而由于immutable特质,该操作在LSM架构上有必不可少。 Log Structured Merge (LSM) data过来之后会写到memory table (MemTable),当mem满了之后,会flush到disk形成不可变的immutable Sorted String Table (SSTable)。当SSTable太多,os所打开的文件句柄也会过多,所以此时需要将多个同质的SSTable合并成一个SSTable。 leveldb architecture Amplifica...

Read more