SpringBoot 接口幂等性的实现

接口幂等性是开发当中要求,也是对业系统正常执行的保障。尤其是支付、订单等与金钱挂钩的服务,保证接口幂等性尤其重要,如果幂等不能够保证,那么很可能出现重复提单、重复消费等一系列线上 Bug,这些问题是不能被接受的。这里简单调研了下业界常用接口幂等性保障方案,使用 SpringBoot 框架实现,进行一下这个过程记录。

Read more

通过 Docker 部署 Redis 6.x 集群

在 Redis 3.0 版本后正式推出 Redis 集群模式,该模式是 Redis 的分布式的解决方案,是一个提供在多个 Redis 节点间共享数据的程序集,且 Redis 集群是去中心化的,它的每个 Master 节点都可以进行读写数据,每个节点都拥有平等的关系,每个节点都保持各自的数据和整个集群的状态,且最重要的是它能够横方便向扩展数据。这里我们部署一下 Redis 6.x 版本的集群模式,这里记录下这个过程。

Read more

Java 中分布式 ID 的设计方案

互联网业务中,一套系统往往都是非常复杂的,很多时候都需要对大量数据进行处理与标识。例如,支付宝、美团、大众点评、京东商城、淘宝商城等等,都需要关联商品编号、用户下单单号、快递的快递号这样的数据,都需要使用一个唯一的 ID 进行标识。如何生成一个全局唯一的,且有序的 ID 对这些数据进行标识,成为分布式系统中很重要的考虑内容。这里我们介绍下 Java 中常用的分布式 ID 生成方案。

Read more

Spring 事务管理详解

日常开发我们经常会提及事务的概念,也会使用数据库事务进行一些列的涉及商品价格的操作,可以说事务是我们开发中必不可续的功能。Spring 框架中对事物进行了一些列封装,提供了事务接口,将事务的实现交由集成的持久层框架完成。可以说非常方便我们在使用 Spring 框架式,用简单的方式就实现事务。这里详细介绍下 Spring 中的事务相关内容。

Read more

通过 Helm 搭建 Docker 镜像仓库 Harbor

Harbor 是一个开放源代码容器镜像注册表,可通过基于角色权限的访问控制来管理镜像,还能扫描镜像中的漏洞并将映像签名为受信任。Harbor 是 CNCF 孵化项目,可提供合规性,性能和互操作性,以帮助跨 Kubernetes 和 Docker 等云原生计算平台持续,安全地管理镜像。下面将记录下,如何通过 Helm 安装 Docker 镜像仓库 Harbor。

Read more

Java 8 中使用 Stream 方式处理数据

在 Java 8 中增加了一个新的抽象接口 Stream API,它支持声明式的处理数据。使用 Stream 操作集合似于使用 SQL 语句数据库查找数据类似,提供直观的方法进行操作。 同时 Stream API 让开发者能够快速写出干净、简洁的代码,提高开发者的开发效率。

Read more

Java 8 中使用 Lambda 表达式简化代码

Lambda 表达式是在 JDK 8 中引入的一个新特性,可用于取代大部分的匿名内部类。使用 Lambda 表达式可以完成用少量的代码实现复杂的功能,极大的简化代码代码量和代码结构。同时,JDK 中也增加了大量的内置函数式接口供我们使用,使得在使用 Lambda 表达式时更加简单、高效。

Read more

Java 8 中使用 Optional 处理 null 对象

Optional 是一个容器对象,可以存储对象、字符串等值,当然也可以存储 null 值。Optional 提供很多有用的方法,能帮助我们将 Java 中的对象等一些值存入其中,这样我们就不用显式进行空值检测,使我们能够用少量的代码完成复杂的流程。

Read more

Java 8 中新增日期时间 API 的使用

在 Java 1.8 版本之前,日期时间 API 存在诸多问题,开发者使用体验非常糟糕,在 Java 8 通过发布新的 Date-Time API (JSR 310) 来对日期与时间的处理的方法进行了改善。而这里进行介绍下 Java 1.8 中的操作日期时间的的方法的使用。

Read more

SpringBoot 实现 Websocket 通信详解

WebSocket 是一种基于 TCP 的网络协议,也是一种全双工通信的协议,既允许客户端向服务器主动发送消息,也允许服务器主动向客户端发送消息。在 WebSocket 中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,进行双向数据传输。对于双向信息交互的需求来说,使用 WebSocket 实现业务逻辑非常合适,这里介绍下 SpringBoot 如何实现基于 WebSocket 的功能需求,并写了四个基本操作示例进行演示。

Read more