Apache Log4j 是一个基于Java的日志记录工具。其 1.x 版本看成Java日志工具的鼻祖,不过目前因过于陈旧而停止更新。 Apache Log4j 2 是对 Log4j 的全新升级,它比其前身Log4j 1.x提供了重大改进,并提供了 Logback 中可用的许多改进,同时修复了Logback架构中的一些固有问题。 相对于 Logback,Apache Log4j 2 还率先支持了 异步日志记录,极大地提升了日志记录的性能。
Spring 提供了响应式编程的实现 WebFlux 来构建异步的、非堵塞的、事件驱动的服务,而且在伸缩性方面表现非常好。 我们经常会写出如下的代码来提供一个api接口: @PostMapping("...
数据库事务(简称:事务,英文:Transaction)是数据库管理系统(DBMS)执行过程中的一个逻辑单位,由一系列(一个或多个)的数据库操作构成。 在应用程序中,我们经常会在一个业务的处理过程中执行多个数据库操作。基于实际的业务需要,我们通常会要求这些数据库操作要么都执行成功,要么都执行失败(不能一部分成功,一部分失败),否则将会影响整个系统的数据一致性。 以我们熟知的「转账」业务为例:张三转账给李四100元,我们要从张三的账户扣除100元(操作①),然后给李四的账户增加100元(操作②)。为了确保数据的一致性,我们要求这两个数据操作必须「同时」完成:要么都执行成功,要么都执行失败。 并非任意的对数据库的操作序列都是数据库事务。数据库事务拥有以下四个特性,习惯上被称之为ACID特性。 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。 持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。
并发(英文:concurrent (adj.) 或 concurrency (n.)),也叫并发计算,是一种程序计算的形式。在系统中,至少有两个以上的计算单元在同时运作,计算结果可能同时发生。用来实现并发系统(Concurrent system)的编程语言与各种算法,统称为并发计算。 一般情况下,我们讨论的并发冲突,指的是多个逻辑计算单元几乎「同时」对同一数据(或者范围内有一定交集的数据)产生读写争用所导致的数据一致性可能出现异常的情况。 例如:现有两处火车票售票点,同时读取某一趟列车车票数据库中车票余额为 N。两处售票点同时卖出一张车票,同时修改余额为 N -1 并写回数据库,这样就造成了实际卖出两张火车票而数据库中的记录却只少了一张。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
OS(Operating system),即操作系统。 目前全球流行的操作系统有Windows、Unix、Linux(及其发行版)、BSD、Mac OS、iOS、Android(实际上也基于Linux内核) 等。
这里的 Shell 指的是 Shell 脚本,分为「交互式Shell」 和 「非交互式Shell」,目前大多数 Linux 发行版都是用 Bash 作为默认 Shell,但是现在 MacOS Catalina 开始使用 zsh 作为默认 Shell,苹果没有解释做出这一决定的原因,但猜测与 GPLv3 开源协议有关。
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入专案。Go是基于Inferno作业系统所开发的。Go于2009年11月正式宣布推出,成为开放原始码专案,支持Linux、macOS、Windows等操作系统。在2016年,Go被软体评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。