2024年度回顾

元旦夜里,鞭炮声吵四起。我睡不着,回想着过去一年发生了什么。 今年的关键词:远程办公、学会投资、接纳自己。 2023年时,因为各种原因,自己想要...

January 8, 2025

使用zio-http, quill与postgres开发web服务

本文面向有一定scala和zio基础的读者。 zio是用Scala语言开发的一套框架,核心功能是并发管理和资源管理,近年来在scala社区中逐...

July 22, 2023

2022年终总结

生活 2022年,经历了新冠,我愿意面对生活的残酷,同时在内心留出一小片地方,继续保持着美好生活的向往。诚如罗曼罗兰所言,世界上只有一种真正的...

January 4, 2023

一套充分利用本地机器的日志中心架构

服务搭在k8s上,起一个DaemonSet使用Fluent-Bit收集所有日志,发到Kafka(这个kafka可以是云服务商提供的,或者是自...

August 14, 2022

最近搭的一套离线数仓架构

最近在搭公司的离线数仓,整理出了一批很实用的组件,在这里分享下。 spark-sql seatunnel k8s clickhouse hive metastore dolphin-scheduler 使用seatunnel+spark将数据从业务数据库导入cli...

August 7, 2022

2021年总结

这是一篇迟来的2总结。不知怎么的就忘了写了,一直拖到现在。 2021年是单调无聊的一年。 这一年都是在做实时数仓。主要精力都花在对口径、写sql...

June 21, 2022

使用akka踩的一些坑

最近在学习 akka,踩了很多坑,这里分享给大家。 使用 akka-stream 限制并发度 原代码如下。 def fetchRlCnt(pageNumbers: Seq[Int]): Future[Int] = { val futures: Seq[Future[HttpResponse]] = pageNumbers .map(page => Http() .singleRequest(HttpRequest(uri = s"https://examples.org/mix_list/$page"))) Future.sequence(futures) .map(_.map(Unmarshal(_).to[MixList])) .flatMap(Future.sequence(_)) .map(_.map(_.data.rl.length).sum) } 本意是请求所有的分页...

August 12, 2021

浅谈TLV协议的实现

今天稍微聊点应用层网络协议设计。 简介 众所周知,tcp是一种面向字节流的协议,可以看作一条无尽的水流。如果对水流的内容不加区分,便完全不知道各...

July 12, 2021

我的macOS软件清单

工作后一直用MacBook Pro(15款和17款),除了公司发的,自己也有一台,现在已经完全习惯了在macOS下开发。macOS下的各种工具...

June 29, 2021

使用hammerspoon管理macOS窗口

macOS没有内置窗口管理功能,需要安装第三方软件来实现。常用的免费软件有Spectacle和ShiftIt,这已不再维护。今天将macOS...

May 26, 2021