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

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

July 22, 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

使用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

使用haproxy,nginx与aria2搭建下载服务

最近搞了一台vps,用它搭建了一个远程下载服务(网盘),包括aria2做下载工具,nginx做静态文件服务,haproxy根据hostnam...

December 26, 2020

AWS SQS如何实现指数退避

SQS 全称 Simple queue service,是 AWS 推出一款消息队列服务。按照 AWS 官方文档的说法,SQS 居有高吞吐、高可用的特性。从我个人的开发体验来看,SQS 是一...

August 8, 2020

AsyncLocalStorage与日志追踪

最近在思考node.js如何做服务间与服务内部的日志追踪,一个很简单的实现就是在HTTP request header里添加一个字段x-trace-id来标...

June 25, 2020