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

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

July 22, 2023

2022年终总结

生活 2022年,因为新冠,我的抑郁症终于好了,赞美太阳。具体情况见我上篇博文。 抑郁症好了后,感觉整个人对生活的状态都变了。我愿意面对生活的残...

January 4, 2023

新冠治好了我的精神内耗

熟悉我的朋友可能知道我患有抑郁症,之前已经吃了几年的药了,但最近得了新冠后莫名其妙地好了,现在每天对生活都充满了希望。 以前抑郁的时候每天都感...

December 25, 2022

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

服务搭在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