“我的”未来技术选型
技术先给出结论,后面有机会建立新团队或启动新项目时,我会优先考虑如下技术选型(这里列出对于大部分系统开发需要的主要技术): 后端:Python + Rust WEB:Vue(TS) RPC:gRPC 数据库:PostgreSQL APP:平台原生技术,Kotlin(Android)、Swfit(iOS)、ArkTS/Cangjie(Harmony) 综合考虑了正确性、健壮性、开发效率
技术先给出结论,后面有机会建立新团队或启动新项目时,我会优先考虑如下技术选型(这里列出对于大部分系统开发需要的主要技术): 后端:Python + Rust WEB:Vue(TS) RPC:gRPC 数据库:PostgreSQL APP:平台原生技术,Kotlin(Android)、Swfit(iOS)、ArkTS/Cangjie(Harmony) 综合考虑了正确性、健壮性、开发效率
本文讨论 CDC 技术在微服务开发中的应用。在使用微服务以后,除了微服务带来的优势,随之而来的也有以前使用单体应用时不曾遇到的问题,比如:分库以后的多表联查、数据一致性等问题。本文将讨论以下两大问题应用 CDC 技术的解决方案: 分库后的多表联查 CQRS(读写分离) 实时数仓 数据一致性 采用事件消息表实现事件驱动性设计 基于最终一致性的分布式事物 有关 CDC 的更详细介绍可以参考
现阶段 API 设计的问题在开发过程中,有一些很困扰前、后端团队交互的问题: 谁来设计 API? 提供什么形式的 API? 什么时候可以提供 API? 对于第一个问题,通常情况下都是由后端人员来设计 API,这就造成前端人员会在开发初期的一段时间内没法作数据模型和服务端交互方面的工作。这时,一些独立的 API 管理工具就派上用场了,比如:类似 yapi 这样的 API 管理/Mock
系统配置操作系统环境 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 层的数据进行加工后将明细
随着微服务的流行,服务拆分与服务依赖越来越多,想在本机搭建一套完整的开发环境愈来愈有挑战。代码服务还好,多开几个 IDE 并启动多个应用服务即可,但若你使用了多种数据库系统、缓存系统、消息系统等时,在本机手动安装就非常繁琐了……可以通过 Docker 来简化这些系统的安装。 本文是对近一年微服务开发环境实践记录,我们在微服务开发中混合使用了 Spring Cloud 框架和 Akka 库,同时应用
Lightbend config 提供了一种叫 HOCON 的标记语言来进行配置管理,它是JVM上的配置管理工具,可用来替代Java自带的Properties;而相对于使用JSON来管理配置,它具有注释、变量、可组合等更丰富的特性。本文分享些日常开发工作中使用Lightbend config的经验和技巧。 Lightbend config以前叫Typesafe config,Github地址为:h
基本使用查询状态1sudo firewall-cmd --zone=public --list-all 打开端口1sudo firewall-cmd --zone=public --permanent --add-port=3306/tcp --permanent选项设置匹配永久生效,但需要调用--reload使firewall重新加载配置使其马上生效。 使规则生效1sudo firewall
原文地址:https://www.jianshu.com/p/3f8692eb3660 原文作者:1nfinity 在启动公司内嵌的tomcat容器时出现报错, 如下: 1234# There is insufficient memory for the Java Runtime Environment to continue.# Native memory allocation (mallo
Wiki百科上对DevOps一词的解释:DevOps(Development和Operations的组合詞)是一种重视「软件开发人员(Dev)」和「IT运维技术人员(Ops)」之间沟通合作的文化、运动或慣例。 透过自动化「软件交付」和「架构变更」的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 而Gitlab和Jenkins是我们在DevOps中常用的工具,本文将简单介绍下怎样搭配G
最近公司给客户做的系统遇到大量爬虫爬取,造成系统资源消耗增高、系统响应降低…… 因为项目时间比较紧,没有更多时间在功能和代码层面上进行修改来上一套反爬虫系统。权衡以后决定使用Nginx提供的请求限流功能来实现一个简单的反爬虫机制。待以后再详细规划、设计反爬虫系统。 我们一直使用的是阿里发布的Nginx重发行版:Tengine,本文也将基于Tengine来介绍Nginx的限流控制。 ngx_http
在日常工作中,写电子文档是个很普遍的事情。之前一直用Microsoft Word、Libreoffice Writer来写,但总感觉不方便,很多的精力都浪费在了调整格式上。而使用 Sphinx 来写电子文档,则可以把你从调整格式的泥潭中解放出来。Sphinx 是一款基于 Python的文档处理工具,Python官方的文档就是使用它来写的。Sphinx 使用reStructuredText 格式来定
Java/Scala:全功能的业务、服务端开发平台。大数据开发:Spark、Scala、Akka Node.js:前端不说了,还有其它更好的选择吗 Go:21世纪的C语言,分布式开发、API开发利器 Python:胶水、灵活的脚本语言。数据科学家的最爱 开门见山,先表明下我的态度吧。以上4个是我的首先,个人认为很不错的技术选型。当然,也不是非此不可,技术选型这个除了从技术本身考虑
本文记录一些 Linux 日常运维相关工具使用方法。 (注:未做特殊说明,以下设置均指:Ubuntu Server 14.04,并测试通过。) 系统设置更改系统默认字符集 Ubuntu Server下,需要修改 /etc/default/locale 文件使配置生效(需要重启系统)。也可以在每个用户的登录 .bashrc 或 .bash_profile中设置LANG、LANGUAGE等环境变量。
用了一段时间Tengine了,主要用于静态资源、后端服务的反向代理、负载均衡方面。也有了一些使用经验,现在将一些配置及心得记录于此。 Tengine的安装Tengine的安装非常简单,就是: 123$ ./configure$ make$ sudo make install 官方有更详细的说明:http://tengine.taobao.org/document_cn/install_
随着业务和数据的需要,我们引入了Spark。Spark对Python的支持还是挺好的,但毕竟它还是使用Scala开发的,且现有的API并没有100%覆盖Python。所以就有了这篇文章,让Python程序员可以接触Scala这门更高(级)、更快(速)、更强(大)的(奥运精神)语言。 Scala兼具Python样的开发效率,但又有Java般的执行性能,真是一不可多得的神器!(当然,鱼和熊不可兼得,S
JVM程序员书单 为什么是JVM程序员书单,因为现在Java已经不再单指Java编程语言了,而是说整个Java生态环境和基于JVM平台的各种虚拟机语言。如:Scala、Clojure、Groovy等。 《软件框架设计的艺术》 这是Netbeans的创始人写的一本很有价值的书,里面的边角细节也很有料。国内市场上没有对这本书给予应给的赞誉。 《Effective Java 第二版》 被称为Java领域
一般在应用部署中都不会直接把Web Server(如:Tomcat、Jetty等)暴露给用户,我们会在Web Server前面再加一个反向代理。这篇文章介绍的就是怎样设置Nginx来做反向代理。 Nginx安装以Ubuntu 14.04为例(其它系统请自行查找安装方法)。官方安装文档在:http://nginx.org/en/download.html 1234567curl http://ng
Gatling下载是一款开源的性能测试工具,提供简洁、强大的DSL API编写测试套件,支持插件扩展,且自动生成美观、明了的HTML测试报告。 Gatling现在最新版本是:2.1.7。需要scala 2.11支持。 Gatling有多种执行方式,可以使用官话的bundle包,使用gatling.sh脚本执行,也可以使用使用gatling-sbt下载在Sbt工程里执行,也可以集成到如Jenkins
本文简单的记录的 Jenkins 的安装、配置和一些插件的使用。 git: Git Plugin maven: Maven Project Plugin sbt: sbt plugin Install到 https://jenkins-ci.org/ 下载最新版,放到 tomcat/webapp 启动即可。安装非常的简单。 访问 http://localhost:8080/jenkins 目录