Spring Cloud 全链路灰度发布
在 Canary Release 一文中作者说明了灰度发布的概念和流程
现在我们来看看在 Spring Cloud 技术体系下该如何实现灰度发布?相关的源码在 examples/example-cloud。
在 Canary Release 一文中作者说明了灰度发布的概念和流程
现在我们来看看在 Spring Cloud 技术体系下该如何实现灰度发布?相关的源码在 examples/example-cloud。
在 Java 语言中,当一个程序所有可能的语句都执行完成后程序就会自动退出。也可以调用 System#exit 和 Runtime#exit 方法提前退出当前程序。
1 | public class Application { |
但是对一个 Spring Boot 应用程序来说,当所有可能的语句执行完成后程序却不会自动退出,这是为什么呢?
1 | import org.springframework.boot.SpringApplication; |
在使用 Jackson 序列化对象时可以使用 @JsonPropertyOrder 注解、@JsonProperty 注解,MapperFeature 枚举中 SORT_PROPERTIES_ALPHABETICALLY、SORT_CREATOR_PROPERTIES_FIRST 和 SORT_CREATOR_PROPERTIES_BY_DECLARATION_ORDER 枚举值来控制字段的输出顺序。如果没有通过这些方式控制字段的输出顺序,则输出的结果与对象中的字段的定义顺序有关。那么排序的过程是怎样的呢?下面来看一看。
本文是在 Windows 的 VirtualBox 上安装 Debian 11.4.0 系统。安装完成后会创建两个用户
| 用户 | 密码 | 备注 |
|---|---|---|
| root | 123456 | 超级用户,权限最大 |
| acomma | 123456 | 普通用户,日常使用 |
我们有一个系统在不停接收其他系统发来的消息,我们的任务任务是查询连续出现两次及以上的消息。下面是一些例子
如上图所示,有紫色、红色、黄色三个矩形区域,其中紫色区域完全在东半球,黄色区域完全在西半球,而红色区域一半在东半球一半在西半球,即它跨越了 180°(-180°) 经线。我们用左上/右下两个点来表示一个矩形区域,因此紫色区域表示为 (147.66, 36.31) / (159.71, 30.88),红色区域表示为 (173.53, 36.49) / (-173.32, 31.17),黄色区域表示为 (-160.49, 36.31) / (-147.24, 30.98)。在每一个区域中分布着一些点,现在需要一种把这些点查询出来的方法。
为了方便定位地球上的点,人为定义了经线和纬线,它们组成了一个经纬网。经度的范围为 [-180°, +180°],本初子午线的位置为 0°,向东走为东经,经度范围为 [0°, +180°],向西走为西经,经度范围为 [-180°, 0°],-180° 和 180° 对应同一根经线,也叫国际日期变更线。纬度的范围为 [-90°, +90°],赤道的位置为 0°,向北走为北纬,纬度范围为 [0°, +90°],向南走为南纬,纬度范围为 [-90°, 0°],-90° 和 90° 的位置对应南极点和北极点。
我们的问题是对于给定两个经度或纬度,如何计算它们之间的差值?
为了说明问题我创建了一张员工表 employees 并初始化了一些数据
1 | CREATE TABLE employees |
最近读到一篇非常好的文章 PostgreSQL 中 timestamp 与 timestamptz 的区别,也可以访问 https://japinli.github.io/2023/03/postgresql-timestamp/,读完这篇文章后学习到了两点
EXTRACT(EPOCH FROM source) 是基于 Unix 纪元的结果。src/backend/utils/adt/timestamp.c 文件中的 timestamp_in 和 timestamp_out 函数,从源码上理解时间字符串的输入和输出逻辑。因此本文的逻辑是基于显示的结果而言,从显示的结果推论可能的原因,只是为了方便理解。推荐阅读它而不是本文。