es 3期 第18节-分页查询使用避坑的一些事
#### 1.Elasticsearch是数据库,不是普通的Java应用程序,传统数据库需要的硬件资源同样需要,提升性能最有效的就是升级硬件。
#### 2.Elasticsearch是文档型数据库,不是关系型数据库,不具备严格的ACID事务特性,任何企图直接替代严格事务性场景的应用项目都会失败!!!
##### 索引字段与属性都属于静态设置,若后期变更历史数据需要重建索引才可生效
##### 对历史数据无效!!!!
##### 一定要重建索引!!!!
### 1、分页查询原理概要
## 分页查询需求
# 分页需求海量数据:动辄数据量千万级别、亿级别,无法在一页内展示
# 数据排序:查询数据需要排序,按顺序展示
## 分页查询过程
# 按条件扫描数据
# 按条件排列数据
# 取回数据
## ES分片查询阶段
# ES是分布式的,相比传统数据库多了分片机制,查询一次,要查询多个分片;
# 分页查询相比传统数据库增加了复杂度。
## ES分片合并阶段
# 服务端协调节点从各分片取回数据ID按照条件排序合并得到最终的数据ID列表
## 分页查询问题
# 分页查询大小,决定了查询的响应
# 分页查询深度,决定了查询的效率
# 分页查询体验,决定了鱼与熊掌兼得
## 查询便利
# 查询优点
# 查询数据时,可同时返回数据量总条数与分页的明细数据;避免了传统数据库查询2次的问题,大大提升了查询效率
## 数据准备
POST _reindex
{"source": {"index": "kibana_sample_data_logs"},"dest": {"index": "kibana_sample_data_logs_page"}
}
## From Size查询
# 起始页查询介绍
# from:设定起始数据位置
# size:设定单页数据量大小
GET kibana_sample_data_logs_page/_search
{"track_total_hits":true,"from":10,"size":20
}
## 查询限制
# 查询窗口大小限制
# From+size<=10000,默认不能超过此值,es的安全限制,会报错
# Window=10000,重排序窗口不能超过此值
# 查询超过10000的语句,报错
GET kibana_sample_data_logs_page/_search
{"track_total_hits":true,"from":10000,"size":20
}
## 但是实际场景中还是会有深分页需求,可以通过修改配置实现
# 修改索引配置
PUT kibana_sample_data_logs_page/_settings
{"index":{"max_result_window":20000}
}
# 再次查询,不报错了
GET kibana_sample_data_logs_page/_search
{"track_total_hits":true,"from":10000,"size":20
}
## 单页大小设置
# 单页大小
# Size设置多大合适,不同的大小性能不一
# _source控制在1kb以内
# 每次查询返回数据控制在1M以内
# 尽量不要深分页和大页数
# 分片数也不要过多,请求会分发到所有分片在做聚合
### 3、Search After查询实战
## 参照点分页查询
# 概念介绍
# Search after,基于排序字段,查询下一页,基于上一页最后一条数据的排序字段值,作为参照可以保证数据查询量大大减少
## 注意事项
# 1.分页会导致数据跳跃
# 2.数据新增或者变更refresh造成错误
# 查询根据timestamp 倒序,使用的数据离散度要高,否则容易跳页
GET kibana_sample_data_logs_page/_search
{"track_total_hits":true,"from":0,"size":20,"query":{"match_all": {}},"sort":{"timestamp":{"order":"desc"}}
}
# 跳过第一条数据的sort值,原第二条数据变成了现在的第一条
GET kibana_sample_data_logs_page/_search
{"track_total_hits":true,"from":0,"size":20,"query":{"match_all": {}},"sort":{"timestamp":{"order":"desc"}},// 跳过第一条数据的sort值"search_after":["1721339126749"]
}
# 查询数据离散度低的排序跳页
GET kibana_sample_data_logs_page/_search
{"track_total_hits":true,"from":0,"size":20,"query":{"term": {"response": {"value": "200"}}}
}
# 跳过200没有数据了
GET kibana_sample_data_logs_page/_search
{"track_total_hits":true,"from":0,"size":20,"query":{"match_all": {}},"sort":[{"response":{"order":"desc"}}],// 跳过第一条数据的sort值"search_after":["200"]
}
# 可以使用多个字段排序,方式跳页
GET kibana_sample_data_logs_page/_search
{"track_total_hits":true,"from":0,"size":20,"query":{"match_all": {}},"sort":[{"response":{"order":"desc"}},{"timestamp":{"order":"desc"}}],// 跳过第一条数据的sort值"search_after":["200","1721339126749"]
}
## search_after 与 from 一起使用会报错,不支持
GET kibana_sample_data_logs_page/_search
{"track_total_hits":true,"from":10,"size":20,"query":{"match_all": {}},"sort":[{"response":{"order":"desc"}}],// 跳过第一条数据的sort值"search_after":["200"]
}
### 4、Point in time查询实战
## Point in time查询
# 概念介绍
# Search after,基于排序字段,查询下一页,基于上一页最后一条数据的排序字段值,作为参照,可以保证数据查询量大大减少
# 注意事项
# 1.分页会导致数据跳跃
# 2.数据新增或者变更refresh造成错误
# 业务上数据是在不停的新增的,找不到原来的数据,这里相当于一个快照
# 生成分钟的快照
POST kibana_sample_data_logs_page/_pit?keep_alive=1m
# 使用pit id查询,不能显示的指定索引名称,因为pit中带了索引信息
GET _search
{"track_total_hits":true,"from":10,"size":20,"query":{"match_all": {}},"pit":{"id": "i_vrAwEca2liYW5hX3NhbXBsZV9kYXRhX2xvZ3NfcGFnZRZ0MnRXYnZrc1RacWdoUjJBWFdpazJ3ABZDZnVtY0x0QlI0Ry13VUNoZ3BwOU53AAAAAAAABazOFkNtYjBkU0E5VGF5Q3hBOFJuMHh6QVEAARZ0MnRXYnZrc1RacWdoUjJBWFdpazJ3AAA="},"sort":[{"timestamp":{"order":"desc"}}]
}
### 5、Search Scroll 查询实战
## scroll快照查询
# 概念解释
# 快照查询基于缓存机制,将查询的所有数据ID缓存起来,下次查询,从缓存中直接找寻,避免重复执行查询,是目前业界做深度查询最佳的方式;
# 注意事项
# 局限性也明显,实时性支持弱;
# 不支持修改页数,不支持跳页
# 占用内存,使用完要清理掉
# 查询条件,并生成1分钟的快照
# 同时预设查询条数和条件
POST kibana_sample_data_logs_page/_search?scroll=1m
{"track_total_hits":true,// 预设每次查100条"size":100,// 预设查询条件"query":{"term": {"response": {"value": "503"}}}
}
# 使用scroll id查询,不能显示的指定索引名称,因为scroll id中带了索引信息和条件
# 数据一共有441条,查询5次就没结果了
GET _search/scroll
{"scroll_id":"FGluY2x1ZGVfY29udGV4dF91dWlkDXF1ZXJ5QW5kRmV0Y2gBFkNtYjBkU0E5VGF5Q3hBOFJuMHh6QVEAAAAAAAY4TRZDZnVtY0x0QlI0Ry13VUNoZ3BwOU53","scroll":"1m"
}
### 6、分页查询建议与经验分享
# 技术尽量满足业务需求
# 技术不能无限制满足业务
# 平衡业务与技术
# 深度翻页真的需要这么多吗?有十万条数据的时候,真是场景下用户不会每页100条翻到最后一页
# 分页性能问题?from和size,size大了性能就不会高,数据量大了从es取出来快,但是带宽不行
# 查询DSL语法
# https://www.elastic.co/guide/en/elasticsearch/reference/7.11/search-search.html
# 分⻚查询
# https://www.elastic.co/guide/en/elasticsearch/reference/7.11/paginate-search-results.html
# scroll-api
# https://www.elastic.co/guide/en/elasticsearch/reference/7.11/scroll-api.html
# point-in-time-api
# https://www.elastic.co/guide/en/elasticsearch/reference/7.11/point-in-time-api.html
# # time-units 时间参数
# https://www.elastic.co/guide/en/elasticsearch/reference/7.11/common-options.html#time-units
相关文章:
es 3期 第18节-分页查询使用避坑的一些事
#### 1.Elasticsearch是数据库,不是普通的Java应用程序,传统数据库需要的硬件资源同样需要,提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库,不是关系型数据库,不具备严格的ACID事务特性ÿ…...
linux检测硬盘
通过fdisk 查看显示所有磁盘或闪存的信息 fdisk -l /dev/sd*使用 badlocks检查 linux 硬盘上的坏道/坏块。也可以修复坏道,但仅限于逻辑坏道,物理坏道只能更换硬盘 badblocks -s -v /dev/vdb1 > /badblocks-vdb1.txt tail -f badblocks-vdb1.txt #检…...
Unity3d 基于UGUI和VideoPlayer 实现一个多功能视频播放器功能(含源码)
前言 随着Unity3d引擎在数字沙盘、智慧工厂、数字孪生等场景的广泛应用,视频已成为系统程序中展示时,不可或缺的一部分。在 Unity3d 中,我们可以通过强大的 VideoPlayer 组件和灵活的 UGUI 系统,将视频播放功能无缝集成到用户界面…...
Ubuntu22.04 LTS 安装nvidia显卡驱动
准备跑老师给定的Github上的多模态源码,但是用了这么久ubuntu还没有尝试过安装nvidia驱动,好在也是一次成功,于是记录下来。 借鉴的是Ubuntu22.04安装显卡驱动(高速、避错版)-CSDN博客这篇文章,按照流程来基本没有问题,不过个人觉得有些步骤比较冗余,所以记录下来 主要…...
Linux编程(清华大学出版社2019年1月第1版)第5章课后作业
5.1 对于执行在时间上有重叠的逻辑流,称为并发流,并发流是并发的 并发不并发并发 5.2 几个箭头几个状态转换关系,箭头上写了可能原因。 在就绪状态不会执行指令,不会有IO请求或主动wait的情况,不会有从就绪状态到阻…...
相机雷达外参标定综述“Automatic targetless LiDAR–camera calibration: a survey“
相机雷达外参标定综述--Automatic targetless LiDAR–camera calibration: a survey 前言1 Introduction2 Background3 Automatic targetless LiDAR–camera calibration3.1 Information theory based method(信息论方法)3.1.1 Pairs of point cloud and image attributes(属性…...
JSON 系列之1:将 JSON 数据存储在 Oracle 数据库中
本文为Oracle数据库JSON学习系列的第一篇,讲述如何将JSON文档存储到数据库中,包括了版本为19c和23ai的情形。 19c中的JSON 先来看一下数据库版本为19c时的情形。 创建表colortab,其中color列的长度设为4000。若color的长度需要设为32767&a…...
分布式专题(10)之ShardingSphere分库分表实战指南
一、ShardingSphere产品介绍 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在…...
支付宝订单码支付
1.订单码支付,首先下载官方网站提供的sdk包到你的项目中。 2.选择控制器复制官方文档的获取二维码相关的代码示例。打开sdk包中v2的index.php文件,这个才是你选择语言的具体代码。 3.引用里面所需要的类文件,文件下载到你的项目中后…...
使用 Django 和 AWS ECR 实现容器化应用的管理
在现代云原生应用的开发和部署中,容器化技术已经成为主流。Amazon Elastic Container Registry (ECR) 是一种完全管理的 Docker 容器注册表服务,可以与 Amazon ECS、EKS 和其他容器服务无缝集成。在这篇文章中,我们将介绍如何使用 Django 和 AWS ECR 实现集成管理,包括创建、更…...
DeepWalk 原理详解
概述: DeepWalk 是一种流行的图嵌入方法,用于学习图结构数据中节点的低维表示。它通过将图的节点视作序列数据,利用自然语言处理中的技术(类似于word2vec算法)来捕捉节点间的关系,可以帮助我们理解和利用图…...
深入理解批量归一化(BN):原理、缺陷与跨小批量归一化(CmBN)
在训练深度神经网络时,批量归一化(Batch Normalization,简称BN)是一种常用且有效的技术,它帮助解决了深度学习中训练过程中的梯度消失、梯度爆炸和训练不稳定等。然而,BN也有一些局限性,特别是在…...
基于Spring Boot的雅苑小区管理系统
一、系统背景与意义 随着信息化技术的快速发展,传统的小区物业管理方式已经难以满足现代居民对于高效、便捷服务的需求。因此,开发一款基于Spring Boot的小区管理系统显得尤为重要。该系统旨在通过信息化手段,实现小区物业管理的智能化、自动…...
物理层知识要点
文章目录 物理层接口的四大特性通信基础编码和调制(1)数字数据编码为数字信号(2)模拟数据编码为数字信号(3)常见调制方式(3)信道的极限容量 多路复用技术数据传输方式物理层下的传输…...
项目里用到了哪些设计模式是怎么使用的?
在软件开发项目中,设计模式是解决特定问题的通用模板或最佳实践。它们提供了一种经过验证的方式来组织代码,使其更易于理解、维护和扩展。下面我将详细介绍一些常见的设计模式及其在项目中的应用方式。 1. 单例模式(Singleton Pattern&#…...
CPU性能篇-CPU 100%如何定位根因-Day 03
1. CPU使用率 1.1 关键指标介绍 user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的 nice 时间,但包括了 guest 时间。nice(通常缩写为 ni),代表低优先级用户态 CPU 时…...
访谈积鼎科技总经理:国产CFD软件发展与未来趋势展望
傅彦国,上海积鼎信息科技有限公司创始人 记者:请傅总介绍下我国流体仿真行业的发展现状是怎样的? 傅彦国:自2018年政府加大了对核心技术自主研发的支持力度,国产CFD软件逐渐步入发展正轨。 首先,从市场规…...
四种自动化测试模型实例及优缺点详解
一、线性测试 1.概念: 通过录制或编写对应应用程序的操作步骤产生的线性脚本。单纯的来模拟用户完整的操作场景。 (操作,重复操作,数据)都混合在一起。 2.优点: 每个脚本相对独立,且不产生…...
数字后端培训项目Floorplan常见问题系列专题续集1
今天继续给大家分享下数字IC后端设计实现floorplan阶段常见问题系列专题。这些问题都是来自于咱们社区IC后端训练营学员提问的问题库。目前这部分问题库已经积累了4年了,后面会陆续分享这方面的问题。 希望对大家的数字后端学习和工作有所帮助。 数字后端项目Floor…...
NVIDIA GPU 内部架构介绍
NVIDIA GPU 架构 NVIDIA GPU 的 SM(Streaming Multiprocessor) 和 GPC(Graphics Processing Cluster) 是 GPU 架构中的关键组成部分。它们决定了 GPU 的计算能力和性能,以下是对这两个参数的详细介绍: 1. …...
[spring]实例化对象(静动态工厂)
在前面文章的例子当中,我们都创建了Bean对象。spring里常用的获取类的实例化对象有几种方式:构造函数获取Bean对象、静态和动态工厂获取Bean对象、实现FactoryBean规范。 因为一些步骤没有什么别的不同,所以我不会重复去讲,届时会…...
【转】arm64架构的银河麒麟系统Kylin的qt安装教程
转自:arm64架构的银河麒麟系统Kylin的qt安装教程_银河麒麟安装qt-CSDN博客 文章目录 前言 一、准备环境 安装C编译器和调试器 二、安装qt、qtcreator 检查是否已经安装过Qt组件 安装Qt组件和Qt creator 检查组件是否安装成功: 三、测试程序运行 报错 Qt…...
C# Main方法 和顶级语句详解
总目录 前言 Main方法 和顶级语句 介绍。 一、Main方法 1. 基本信息 Main 方法是 C# 应用程序的入口点。 Main 方法是应用程序启动后调用的第一个方法。C# 程序中只能有一个入口点。如果多个类包含 Main 方法,必须使用 StartupObject 编译器选项来编译程序&#…...
传输层协议分析头歌
第1关:TCP 包基础 本机使用的IP地址和TCP端口号(用;隔开):192.168.1.102;1161 gaia.cs.umass.edu的IP地址和端口号(用;隔开):128.119.245.12;80 第2关:三次握手 第一次握手,TCP SYN区段的序列号是:232129012 gaia.cs.umass.edu…...
JAVA AOP简单实践(基于SpringBoot)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
重温设计模式--迭代器模式
文章目录 迭代器模式(Iterator Pattern)概述迭代器模式的结构迭代器模式UML图C 代码示例应用场景 迭代器模式(Iterator Pattern)概述 定义: 迭代器模式是一种行为型设计模式,它提供了一种方法来顺序访问一个…...
Unity-Editor扩展GUI基本实现一个可拖拉放的格子列表
短短几百行代码,好吧,又是“参考”了国外的月亮 操作,还真地挺自然的。。。。。。国外的实现有点小牛 拖拉,增加+ 一个Element 鼠标左键长按,可以出提示 鼠标右键,清除Element, 有点小bug,不是很自然地完全清除, using System.Collections; using System.Collecti…...
Android 11添加电容笔电量监测需求
软件平台:Android11 硬件平台:QCS6125 需求:PAD接入电容笔,该笔通过驱动上报坐标及当前电量等数据,即走系统的input通道,需要系统层监测到该硬件数据,这里主要展示电量,对用户显示提…...
迈向AGI——大模型创新体验嘉年华邀请函
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 深度对话,思想碰撞 大模型创新体验嘉年华诚邀您与我们共同见证 智见未来,只等你来 往期精彩文章推荐 关于AI TIME AI TIME源起于2019年,旨在发扬科学思辨精神,…...
VSCode 性能优化指南:提高编码效率,减少资源占用
Visual Studio Code(简称VSCode)是一款广受欢迎的代码编辑器,以其强大的功能和丰富的插件生态系统著称。然而,随着项目规模的扩大和插件数量的增加,VSCode 的性能可能会受到影响。本文将介绍一系列优化措施,…...
如何获取 ABAP 内表中的重复项
要识别 ABAP 内表中的重复项,可以结合使用排序和循环。下面的示例展示了如何查找内部表中的重复条目: DATA: BEGIN OF itab OCCURS 0,field1 TYPE i,field2 TYPE c LENGTH 10,END OF itab,wa LIKE LINE OF itab.* Add sample data to internal table it…...
android 登录界面编写
1、登录页面实现内容 1.实现使用两个EditText输入框输入用户名和密码。 2.使用CheckBox控件记住密码功能。 3.登录时候,验证用户名和密码是否为空。 4.当前CheckBox控件记住密码勾上时,使用SharedPreferences存储用户名和密码。 5.登录时候使用Prog…...
3D-resnet 50 医学3D图像二分类python代码
离上次发布3D-resnet代码时隔两年,最近让AI推荐3D-resnet的文章给我,AI推荐了三篇 其中两篇是我两年前发的,另一篇在这里Resnet3D预训练网络...... 于是决定更新之前代码,供诸位参考1. 可以用cpu或gpu(推荐8G以上&…...
android sqlite 数据库简单封装示例(java)
sqlite 数据库简单封装示例,使用记事本数据库表进行示例。 首先继承SQLiteOpenHelper 使用sql语句进行创建一张表。 public class noteDBHelper extends SQLiteOpenHelper {public noteDBHelper(Context context, String name, SQLiteDatabase.CursorFactory fact…...
项目练习:若依-前端项目的目录结构介绍
文章目录 一、目录截图二、目录讲解 一、目录截图 二、目录讲解 1、首先,我们可以看到,这个VUE项目,只有一个App.vue,所以,它是一个单页面系统。 这个App.vue是根组件,root组件。 2、public目录 在Vue 3.…...
Android 之 List 简述
一、简单创建方式 Android 开发中,列表有很多种类,如ArrayList、LinkedList、List、MutableList等,创建列表的方式如下所示: fun listDemo() {// 使用 listOf 创建不可变的空列表val list listOf<Int>()val list1 listOf…...
CV(6)-SIFT和Hash
前言 仅记录学习过程,有问题欢迎讨论 SIFT:尺度不变特征变换: SIFT提取图像的局部特征,在尺度空间寻找极值点,并提取出其位置、尺度、方向信息。SIFT的应用范围包括物体辨别、机器人地图感知与导航、影像拼接、3D模型建立、手势…...
javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.13.13 not verified:
javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.13.13 not verified: 前言: 之前需求推送数据是采用http:192.168.13.13:8000 后面业务需求修改为 https:192.168.13.13:443 修改后推送数据到第三方报以下异常, https://192.168.13.13:443…...
用Unity做没有热更需求的单机游戏是否有必要使用AssetBundle?
在使用Unity开发没有热更需求的单机游戏时,是否使用AssetBundle(AB包)是一个值得探讨的问题。以下是对此问题的详细分析: 一、AssetBundle的概述 AssetBundle是Unity中用于存储和加载游戏资源的打包文件,可以包含各种…...
WebRTC Simulcast 大小流介绍与优化实践
Simulcast 是 WebRTC 中的一种标准化技术 ,简称大小流。通过 Simulcast,客户端可以同时发送同一视频的多个版本。每个版本都以不同的分辨率和帧率独立编码,带宽较多的拉流端可以接收较高质量的视频流,带宽有限的拉流端则可以接收较…...
软件测试之测试用例
文章目录 测试用例测试用例的编写总结 测试用例 测试用例:描述测试点执行的文档(测试输入、执行条件、预期结果等) 作用 1.测试点能被精准执行 2.便于团队合作测试用例核心内容 用例编号、用例标题、所属模块、优先级、前置条件、测试步骤、测试数据、预期结果 测试用例的编写…...
Redis--通用命令学习
目录 一、引言 二、基础命令 1.set 2.get 3.keys 3.1 keys ? 3.2 keys * 3.3 keys [abe] 3.4 keys [^] 3.5 keys [a-b] 4.exists 5.delete 6.expire 7.ttl 8.type 三、Redis中的过期策略(面试题) 1.惰性删除 2.定期删除 …...
自动控制系统综合与LabVIEW实现
自动控制系统综合是为了优化系统性能,确保其可靠性、稳定性和灵活性。常用方法包括动态性能优化、稳态误差分析、鲁棒性设计等。结合LabVIEW,可以通过图形化编程、高效数据采集与处理来实现系统综合。本文将阐述具体方法,并结合硬件选型提供实…...
一篇文章学会HTML
目录 页面结构 网页基本标签 图像标签 超链接标签 文本链接 图像链接 锚链接 功能链接 列表 有序列表 无序列表 自定义列表 表格 跨列/跨行 表头 媒体元素 视频 音频 网站的嵌套 表单 表单元素 文本框 单选框 多选框 按钮 下拉框 文本域和文件域 表…...
48页PPT|2024智慧仓储解决方案解读
本文概述了智慧物流仓储建设方案的行业洞察、业务蓝图及建设方案。首先,从政策层面分析了2012年至2020年间国家发布的促进仓储业、物流业转型升级的政策,这些政策强调了自动化、标准化、信息化水平的提升,以及智能化立体仓库的建设࿰…...
React Props 完整使用指南
React Props 完整使用指南 1. 类组件中的 Props 1.1 基本使用 // 父组件 class ParentComponent extends React.Component {render() {return (<ChildComponent name"John"age{25}isStudent{true}hobbies{[reading, swimming]}/>);} }// 子组件 class Child…...
金融数据可视化实现
一、设计题目 金融数据可视化 二、设计目的 使学生掌握用Pandas第三方库数据计算、数据分析的知识与能力。Pandas是专门用于数据分析的库,其提供的read_excel()方法可以方便的读取xlsx格式的文件中的数据到Pandas中的DataFrame中。 DataFrame.plot(kindline)&am…...
逆袭之路(6)——解析数据世界的灵动基石——变量
困厄铸剑心,逆袭展锋芒。 寒苦凝壮志,腾跃绘华章。 我要逆袭。 目录 一、引言 二、变量的定义 三、变量的性质 (一)可变性 (二)有界性 (三)关联性 四、变量的类型 ÿ…...
【云原生】kubeadm搭建的kubernetes1.28集群上自建ingress-nginx服务
1、查询兼容性 先确认下kubernetes版本与ingress-nginx版本兼容性 Ingress-NGINX 版本支持的 k8s 版本Alpine 版本Nginx 版本Helm Chart 版本v1.12.0-beta.01.31, 1.30, 1.29, 1.283.20.31.25.54.12.0-beta.0v1.11.31.30, 1.29, 1.28, 1.27, 1.263.20.31.25.54.11.3v1.11.21.3…...
分布式协同 - 分布式事务_TCC解决方案
文章目录 导图Pre流程图2PC VS 3PC VS TCC2PC(Two-Phase Commit,二阶段提交)3PC(Three-Phase Commit,三阶段提交)TCC(Try-Confirm-Cancel)2PC、3PC与TCC的区别2PC、3PC与TCC的联系 导…...