分类: work

“我的”未来技术选型

技术先给出结论,后面有机会建立新团队或启动新项目时,我会优先考虑如下技术选型(这里列出对于大部分系统开发需要的主要技术): 后端:Python + Rust WEB:Vue(TS) RPC:gRPC 数据库:PostgreSQL APP:平台原生技术,Kotlin(Android)、Swfit(iOS)、ArkTS/Cangjie(Harmony) 综合考虑了正确性、健壮性、开发效率

软件架构:通过 CDC 技术聚合多个微服务的数据

本文讨论 CDC 技术在微服务开发中的应用。在使用微服务以后,除了微服务带来的优势,随之而来的也有以前使用单体应用时不曾遇到的问题,比如:分库以后的多表联查、数据一致性等问题。本文将讨论以下两大问题应用 CDC 技术的解决方案: 分库后的多表联查 CQRS(读写分离) 实时数仓 数据一致性 采用事件消息表实现事件驱动性设计 基于最终一致性的分布式事物 有关 CDC 的更详细介绍可以参考

使用 gRPC 设计 API 的优势

现阶段 API 设计的问题在开发过程中,有一些很困扰前、后端团队交互的问题: 谁来设计 API? 提供什么形式的 API? 什么时候可以提供 API? 对于第一个问题,通常情况下都是由后端人员来设计 API,这就造成前端人员会在开发初期的一段时间内没法作数据模型和服务端交互方面的工作。这时,一些独立的 API 管理工具就派上用场了,比如:类似 yapi 这样的 API 管理/Mock 工具。前

DolphinScheduler

系统配置操作系统环境 1234567891011121314151617systemctl stop firewalldsystemctl disable firewalld# Install softwaresyum -y install epel-releaseyum -y install java-11-openjdk-devel tree htop vim sshpass wget cur

实时数据处理探索:接收、处理、访问

ETL(也包括ELT)是数据处理工作里必不可少的步骤,一直以来通常都是以天或小时为单位采用批处理来对大量的数据进行 ETL 操作。随着业务的增长及需求的变化,用户/客户希望能更快的看到各类数据操作的结果,这就催生了实时 ETL 的诉求。 传统上,批量 ETL 会在数据仓库上进行。比如按 天 为单位从一个库同步原始数据到 ODS 层,再通过编写存储过程来对 ODS 层的数据进行加工后将明细数据存储到

微服务开放环境:Spring & Akka & Docker

随着微服务的流行,服务拆分与服务依赖越来越多,想在本机搭建一套完整的开发环境愈来愈有挑战。代码服务还好,多开几个 IDE 并启动多个应用服务即可,但若你使用了多种数据库系统、缓存系统、消息系统等时,在本机手动安装就非常繁琐了……可以通过 Docker 来简化这些系统的安装。 本文是对近一年微服务开发环境实践记录,我们在微服务开发中混合使用了 Spring Cloud 框架和 Akka 库,同时应用

使用Lightbend Config

Lightbend config 提供了一种叫 HOCON 的标记语言来进行配置管理,它是JVM上的配置管理工具,可用来替代Java自带的Properties;而相对于使用JSON来管理配置,它具有注释、变量、可组合等更丰富的特性。本文分享些日常开发工作中使用Lightbend config的经验和技巧。 Lightbend config以前叫Typesafe config,Github地址为:h

Firewall快速使用

基本使用查询状态1sudo firewall-cmd --zone=public --list-all 打开端口1sudo firewall-cmd --zone=public --permanent --add-port=3306/tcp --permanent选项设置匹配永久生效,但需要调用--reload使firewall重新加载配置使其马上生效。

DevOps实践:Gitlab、Jenkins

Wiki百科上对DevOps一词的解释:DevOps(Development和Operations的组合詞)是一种重视「软件开发人员(Dev)」和「IT运维技术人员(Ops)」之间沟通合作的文化、运动或慣例。 透过自动化「软件交付」和「架构变更」的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 而Gitlab和Jenkins是我们在DevOps中常用的工具,本文将简单介绍下怎样搭配G