构建可回滚的应用及上线checklist实践

在互联网分布式应用中,如果上线的新版本有bug又不能回滚止损,带来的后果将是灾难性的。因此做到上线可回滚以及上线前的checklist是保证服务稳定性的基本要求。 在简单的场景里直接回滚到上一版个版本即可,但是如果涉及多个上下游和组件、考虑多版本兼容,就需要有好好设计下如何构建可回滚的代码,充分验证后还需要仔细检查上线checklist,最大程度保证线上服务的稳定性。
Java 持续集成 软件工程 稳定性 2021年11月20日 88次浏览

编写可回滚的代码

一、导论上线可回滚是软件发布的基本规范,尤其是在互联网分布式应用中,如果上线的新版本有bug又不能回滚止损,带来的后果将是灾难性的。因此做到上线可回滚以及上线前的chenklist是保证服务稳定性的基本要求。二、可回滚发布回滚指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。在回滚之
Java 架构 2021年11月16日 126次浏览

Maven依赖冲突问题排查经验

在日常的开发中,排查问题是一个合格Java开发者的的基本能力。本文以Maven构建工具为例,从原理、思路、工具、实践几方面分享Java中复杂jar包依赖问题排查经验。
Java 软件工程 Maven 2021年11月13日 1,521次浏览

升级Java17问题记录

最新的长期支持版Java17于2021年9月14日如期发布,按照发布规划,JDK/Java 17 属于长期支持版本 (LTS),将会获得 8 年的技术支持,直至 2029 年 9 月。值得一提的是,根据 Oracle 最新推出的**[「Free Java License」](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fblogs.oracle.com%2Fjava%2Fpost%2Ffree-java-license)**,Oracle JDK 可免费用于生产环境。
Java 问题记录 2021年09月18日 1,607次浏览

使用Groovy构建DSL

DSL(Domain Specific Language)官方定义为:针对某一**领域**,具有**受限表达性**的一种计算机程序设计**语言**。 常用于聚焦指定的领域或问题,这就要求 DSL 具备强大的表现力,同时在使用起来要简单。由于其使用简单的特性,DSL 通常不会像 Java,C++等语言将其应用于一般性的编程任务。
Java 架构 Groovy 2021年03月03日 2,400次浏览

使用Reactor完成类似Flink的操作

响应式编程框架也早已有了背压以及丰富的操作符支持,能不能用响应式编程框架处理类似Flink的操作呢,答案是肯定的。
Java 2021年02月26日 2,663次浏览

Gradle最佳实践

本文详细梳理了Gradle使用过程中的问题,以及Maven项目如何迁移到Gradle
Java 持续集成 软件工程 2021年01月13日 1,405次浏览

Java后端模板引擎对比

一、什么是模板引擎模板引擎是为了解决用户界面(显示)与业务数据(内容)分离而产生的。他可以生成特定格式的文档,常用的如格式如HTML、xml以及其他格式的文本格式。其工作模式如下:二、java常用的模板引擎有哪些jsp:是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。Thy
Java 2020年12月14日 2,432次浏览

Git Commit Log规范推荐

Git每次提交代码都需要写commit message,一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作等。但是在日常开发中,开发者提交的的commit message千奇百怪,中英文混合使用,这就导致后续代码维护成本特别大,有时自己都不知道自己的fix bug修改的是什么问题。
Java 持续集成 2020年12月13日 6,865次浏览

Java不同版本编译器踩坑

Java不同版本编译器踩坑
Java 2020年12月01日 1,022次浏览

JDK8升级JDK11过程记录

JDK8升级JDK11过程记录
Java 2020年11月14日 3,305次浏览