001、体系结构之概述

news/2024/5/14 4:01:55/文章来源:https://blog.csdn.net/wangzhicheng987/article/details/130734202

1.TiDB简介

TiDB 是 PingCAP 公司⾃主设计、研发的开源分布式关系型数据库,是⼀款同时⽀持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing,HTAP) 的融合型分布式数据库产品,具备⽔平扩容或者缩容、⾦融级⾼可⽤、实时HTAP、云原⽣的分布式数据库、兼容 MySQL 5.7 协议和 MySQL ⽣态等重要特性。⽬标是为⽤户提供⼀站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决⽅案。TiDB 适合⾼可⽤、强⼀致要求较⾼、数据规模较⼤等各种应⽤场景。

2.TiDB五⼤核⼼特性

  • ⼀键⽔平扩容或者缩容
    得益于 TiDB 存储计算分离的架构的设计,可按需对计算、存储分别进⾏在线扩容或者缩容,扩容或者缩容过程中对应⽤运维⼈员透明。
  • ⾦融级⾼可⽤
    数据采⽤多副本存储,数据副本通过 Multi-Raft 协议同步事务⽇志,多数派写⼊成功事务才能提交,确保数据强⼀致性且少数副本发⽣故障时不影响数据的可⽤性。可按需配置副本地理位置、副本数量等策略满⾜不同容灾级别的要求
  • 实时 HTAP
    提供⾏存储引擎 TiKV、列存储引擎 TiFlash两款存储引擎,TiFlash 通过 Multi-Raft Learner 协议实时从 TiKV 复制数据,确保⾏存储引擎 TiKV 和列存储引擎 TiFlash 之间的数据强⼀致。TiKV、TiFlash 可按需部署在不同的机器,解决 HTAP 资源隔离的问题。
  • 云原⽣的分布式数据库
    专为云⽽设计的分布式数据库,通过 TiDB Operator可在公有云、私有云、混合云中实现部署⼯具化、⾃动化。
  • 兼容 MySQL 5.7 协议和 MySQL ⽣态
    兼容 MySQL 5.7 协议、MySQL 常⽤的功能、MySQL ⽣态,应⽤⽆需或者修改少量代码即可从 MySQL 迁移到 TiDB。提供丰富的数据迁移⼯具帮助应⽤便捷完成数据迁移。

3.TiDB的应⽤场景解决⽅案

3.1 TiDB规模化OLTP通⽤解决⽅案

近年来全球数据呈爆发增⻓,到2025年预计将达到175ZB,数据⽇益成为重要战略资源和新⽣产要素,数据库软件作为基础软件之⼀,时代发展对其能⼒提出了更⾼的要求。

关系型数据库在企业数字化转型的过程中⾯临诸多挑战:

  • 海量数据下如何实现应⽤⽆感的在线⽔平扩展,具备弹性的架构能⼒;
  • 多源数据接⼊,数据价值如何快速变现;
  • 如何满⾜⾼并发、低延时、数据⼀致性、⾼可⽤等需求。

TiDB⽀持海量数据的⾼性能写⼊和实时分析

  • TiDB提供可扩展、⽆上限的实时写⼊和实时查询能⼒;
  • TiDB具备强⼤的分布式查询引擎,可⽤于各种实时分析场景。

在这里插入图片描述
TiDB分布式架构提供整体的弹性扩缩容能⼒

  • TiDB⽔平弹性扩展、分布式数据库强⼀致性等特性适合批量计算场景;
  • 解决传统数据库并发⽀持低、分析能⼒差、⽆法线性扩展等痛点;
  • 结合应⽤系统的场景能⼒,打造整体分布式弹性扩缩容的业务架构。
    在这里插入图片描述

该⽅案的优势:

  • ⾼并发、可扩展、⽆上限的实时写⼊和查询能⼒。
  • 采⽤存储计算分离的架构设计,可按需对计算、存储分别进⾏在线扩容或者缩容,且过程对应⽤运维⼈员透明。
  • 数据均匀分散到所有存储节点,对应⽤完全透明。

3.2 TiDB实时数据服务解决⽅案

数字化转型过程中数据价值变现的关键点:

  • 多源应⽤的数据实时汇聚能⼒
  • 多场景的灵活数据计算能⼒
  • 基于持续变化数据的管理模式
  • 动态的数据加⼯与更新
  • 持续、及时、⾼效获取“新鲜数据”
  • T+0实时数据服务化能⼒

适⽤于实时监控、实时⼤屏、实时营销、⼤数据⻛控、实时搜索、实时资产等业务场景的混合负载:

  • ⽀持多种数据采集⽅式,包括CDC(数据变化捕获)、消息中间件+流式计算框架的实时⽅式,及时、⾼效地获得“新鲜数据”;
  • 基于⾏、列混存的HTAP架构,提供实时数据服务,具备数字化转型中数据价值的实时变现能⼒。
    在这里插入图片描述

TiDB+Flink企业版(Ververica Platform)实时HTAP商业⽅案:

  • 数据处理速度有保障,TiBD和Flink都可以通过⽔平扩展节点来增加算⼒。
  • ⽤户可以单独使⽤TiDB构建实时分析业务,也可以与Flink⽣态⼀起构建实时的数仓体系。
    在这里插入图片描述

该⽅案的优势:

  • 灵活多样的准实时接⼊模式,简化中间集合,缩短传递链路,提⾼处理时效。
  • 简化技术栈,实时HTAP,流批⼀体化。
  • HTAP架构兼顾实时分析领域的⾼并发访问和交互式分析诉求。

3.3 企业级客户信息整合系统解决⽅案

ECIF是企业级客户信息整合系统(Enterprise Customer Information Facility)。ECIF提供客户维度的开⽴、变更、查询、校验客户信息等基本服务,以及合约关系管理、可会等级等增值服务。ECIF数据管理经历了“单体模式——垂直拆分模式——垂直+⽔平拆分模式”的变迁,当前ECIF的核⼼诉求和痛点包括:

  • 数据规模⽔平扩展:随着数据整合以及业务的快速发展,ECIF所承载的数据规模呈指数级增⻓,传统单体数据库或分库分表模式⽆法满⾜需求。
  • 简化数据管理模式:分库分表架构增加了系统的复杂度和维护成本,应⽤团队需要在业务功能迭代创新、系统稳定易⽤等⽅⾯不断平衡。
  • 持续业务创新能⼒:数据拆分直接导致汇总查询、多维分析等跨分⽚场景⽆所适从,还需引⼊额外的汇总库,进⼀步加⼤了架构的复杂度和管理成本。
  • 弹性架构能⼒:分库分表模式在⽔平扩展能⼒不⾜,需要停机进⾏数据迁移,⽆法做到在线⽔平扩展及真正意义的7*24服务,也会对系统⾼并发服务能⼒造成制约。

基于TiDB的ECIF弹性架构:

  • 基于TiDB的OLTP Scale 能⼒承载ECIF系统的对私或对公客户信息、系统公共信息;
  • 应⽤层通过数据访问组件基于负载均衡软、硬件访问TiDB中的各类数据进⾏联机和批量操作;
  • ⽆需考虑分⽚键和反向索引设计,可基于标准索引进⾏多维度⾼效数据操作及汇聚查询;
  • 批量操作可基于调度框架按业务维度分批次进⾏处理;
  • 同时⽀持传统ETL离线⼊仓和TiCDC实时增量同步到下游;
  • 可基于TiDB搭建跨数据中⼼级的⾼可⽤架构。
    在这里插入图片描述

该⽅案的优势:

  • 在线⽔平扩展和弹性架构能⼒
    TiDB⽀持分布式事务和强⼀致性的⽔平弹性扩展,⽆论多⼤的数据量,只需轻松增加节点即可解决。
  • ⾮分库分表,简化数据管理复杂度
    应⽤⽆需再引⼊分库分表、应⽤级分布式事务等复杂技术栈,⽆需再引⼊额外的汇聚库处理汇总查询、多维查询等场景。
  • 便捷式应⽤适配和业务能⼒提升
    应⽤如何使⽤单体数据库⼀样使⽤TiDB,⽆需考虑底层数据管理细节。应⽤系统将更多的精⼒回归到业务功能的迭代,以提供更加敏捷、创新、扩展的服务。

3.5实时⻛控解决⽅案

在⾦融需求和⽣活场景不断融合的趋势下,实时⻛控的复杂度和对数据时效性的要求越来越⾼,通常需要秒级完成业务流程,并整合决策引擎、征信服务、额度系统、反欺诈系统、公安系统、联⽹检查、反欺诈等系统能⼒,提供统⼀的⻛控能⼒⼊⼝。
现有⽅案在实时⻛控领域⾯临的主要痛点有:

  • 复杂的数据获取与加⼯,⻛控实时价值丧失,统⼀视图构建困难重重;
  • 复杂数据处理技术栈,多处多地加⼯、数据割裂,丧失灵活性和扩展性。
    在这里插入图片描述

TiDB实时⻛控(含监察)数据处理技术架构,在⼤数据场景下⻛控数据的存储及加⼯,实现⻛控数据价值的实时变现:

  • 利⽤TiDB数据库CDC处理技术,结合Kafka和Flink等技术栈,实现将各业务系统最新产⽣的业务数据、外部监察类数据、本⾏及三⽅⻛控数据实时汇聚到统⼀的TiDB分布式数据库集群存储管理,提升数据实时获取能⼒;
  • 基于TiDB⾼可⽤和弹性处理能⼒,可进⼀步对实时汇聚的⻛控相关数据进⾏聚合、汇总、分类,变量加⼯等处理,根据业务的诉求,提供实时⻛控或实时⼤屏展现的能⼒。
    在这里插入图片描述

基于TiDB HTAP能⼒打造实时⻛控弹性架构

  • 利⽤TiDB数据库海量数据存储能⼒,可以实现将⻛控系统智能信审模块、基础数据服务模块沉淀的⻛控业务、征信、反欺诈、联⽹核查等⻛控数据进⾏统⼀存储;
  • 基于TiDB HTAP架构⾏存及列存混合处理引擎能⼒,可进⼀步对业务沉淀和实时汇聚的⻛控相关数据加⼯分析处理,形成可⽤于⻛控场景消费的价值数据;
  • 基于TiDB的⾼并发能⼒,服务层将业务逻辑封装成标准的统⼀⻛控服务API,并提供统⼀的访问⼊⼝,打造实时⻛控(含监察类)弹性架构。
    在这里插入图片描述

该⽅案的优势:

  • 满⾜⼤数据场景下⻛控数据存储;
  • 提供统⼀数据实时服务
    通过流式数据接⼊可以实时汇总征信、三⽅、客户交易、监管⿊名单、联⽹核
    查、反欺诈等数据,对数据进⾏聚合分析,形成⻛险数据集市。
  • 降低技术架构实现的复杂性。

3.7 综合数据服务平台解决⽅案

⾦融⾏业传统数据服务按⾯向的群体划分为客户服务、运营管理两个维度。对客户服务部分通过OLTP类关系型数据库承载⾼并发、低延时特性的实时交易场景;对于运营管理类需求,通常基于⽂件交换或ETL技术,将对客部分的OLTP数据离线同步到下游的OLAP类分析型数据库,并通过⾯向主题的数据仓库模式,采⽤批处理对⼤数据进⾏复杂计算,将结果应⽤于⾯向经营分析的场景。
在这里插入图片描述
传统模式的特征是数据产⽣到处理时效性差、数据附加值低,难以应对移动互联
⽹、场景⾦融时代对于数据实时应⽤能⼒的诉求。数字化转型对数据服务模式带来的挑战包括:

  • 多源、多分⽚的数据实时汇聚能⼒
  • 多场景、多维度的灵活数据计算能⼒
  • 基于持续变化数据的管理模式
  • 动态的数据加⼯与更新
  • 持续、及时、⾼效获取“新鲜数据”
  • T+0实时数据服务化能⼒

基于TiDB的综合数据服务平台架构:

  • 平台由数据采集、数据预处理、实时/离线数据存储、数据服务等功能组件,以及资产管理等运营组件构成;
  • ⽀持多种采集⽅式,包括CDC、消息中间件+流式计算架构的实时⽅式,以及与离线数仓/⼤数据平台交互的ETL⽅式;
  • 基于TiDB的弹性扩展、HTAP能⼒实现实时数据的集中存储和混合式处理,并与离线数仓形成有益的互补;
  • 数据服务可基于TiDB实现基于标准SQL、⽆需考虑分⽚键的扩展性设计能⼒;
  • 简化传统实时分析领域的技术栈,降低运维复杂性。
    在这里插入图片描述

该⽅案的优势:

  • 在线⽔平扩展和弹性伸缩能⼒
  • 微服务、单元化架构下的数据实时汇聚和消费能⼒
  • HTAP架构兼顾实时分析领域的⾼并发访问和交互式分析诉求

4、与传统单机数据库的⽐较

与传统的单机数据库相⽐,TiDB 具有以下优势:

  • 两者都支持ACID、事务强一致性
  • 纯分布式架构,拥有良好的扩展性,⽀持弹性的扩缩容
  • ⽀持 SQL,对外暴露 MySQL 的⽹络协议,并兼容⼤多数 MySQL 的语法,在⼤多数场景下可以直接替换 MySQL
  • 默认⽀持⾼可⽤,在少数副本失效的情况下,数据库本身能够⾃动进⾏数据修复和故障转移,对业务透明
  • ⽀持 ACID 事务,对于⼀些有强⼀致需求的场景友好,例如:银⾏转账
  • 具有丰富的⼯具链⽣态,覆盖数据迁移、同步、备份等多种场景
  • 采用水平扩展,在大数据量、高吞吐的业务场景中具有先天优势
  • 强项不在于轻量的简单SQL,而在于大量高并发SQL的吞吐
  • 传统的分布式,扩展,就是经常说的分库分表。最大的弊端就是肯定需要在app层定制分片策略,例如操作的时候一定要指定分片键
  • 而对于TiDB则对于app层不需要做 分片策略,它的数据分分布在不同的Region中(类似传统的sharding ),TiDB能告诉应用数据在哪。

5、TiDB的内核模块(了解,后续详解)

5.1、整体架构

  • TiDB 整体架构:TiDB Server、TiKV、TiFlash、PD

在内核设计上,TiDB 分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的 TiDB 系统。对应的架构图如下
在这里插入图片描述

  • TiFlash 是 TiKV 的列存版本,并参与复制,保持数据一致
  • PD(Placement Driver) 节点记录数据在哪些 TiKV 或 TiFlash 节点上,以及全局时间戳(TSO),还会配合 TiDB Server 生成事务的唯一ID
  • 数据分区(Region)存储(96~144mb),默认三副本,一个 leader 负责读写,另两个读96mb 后 Region 里就不会新插入数据了,但可能会修改已有的数据,所以 region 大小是 96~144mb 一个区间
  • 兼容 MySQL 5.7 协议
  • TiKV = Transaction + MVCC + Raft + rocksdb raft + rocksdb kv
  • 分布式事务是两阶段提交。两阶段提交的锁信息被持久化到 TiKV 中。
  • PD 会收集集群信息进行调度,达到平衡数据的效果
  • TiKV 承载 OLTP 业务,TiFlash 承载 OLAP 业务,达到业务隔离。TiDB Server 根据 SQL 进行预测,智能选择使用 TiKV 还是 TiFlash 进行查询,也可以人工指定
  • TiDB Server 是无状态的,不存储数据。支持扩展,缓解连接压力
  • TiDB Server 会解析,编译,优化 SQL 语句,生成执行计划;同时会负责将关系型数据转化为 KV 存储进行持久化,以及将 KV 存储转化为关系型数据返回给客户端
  • 对于历史版本数据的垃圾回收,是由 TiDB Server 在 TiKV 上完成的
  • 数据在TiKV中是以键值对(KEY-VALUE)形式存储的

5.2、行记录映射到KV

key的形式:

tablePrefix{TableID}_recordPrefixSep{RowID}

表数据与KV的映射:

  • 1,“TiDB”,“SQL Layer”,10:t10_r1 --> [“TiDB”,“SQL Layer”,10]
  • 2,“TiKV”,“KV Engine”,20:t10_r2 --> [“TiKV”,“KV Engine”,20]
  • 3,“PD”,“Manager”,30:t10_r3 --> [“PD”,“Manager”,30]

这个 (1,“TiDB”,“SQL Layer”,10) 是关系型数据库当中存放的的一条记录。
在TiDB当中,它会变成t10_r1 --> [“TiDB”,“SQL Layer”,10] ,具体的行作为value

它的key(t10_r1),实际上是由 t:是固定的。10:是当前插入某个表的全局唯一id,就是Table ID,这个TableID会从PD(大脑)中来取。 r: 记录前缀,1:这个行的id rowid,1就表示第一行。

通过key-value的方式存储到TiKV当中。

5.3、存储节点

在这里插入图片描述

  • TiKV Server:负责存储数据,从外部看 TiKV 是⼀个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储⼀个 Key Range(从 StartKey 到 EndKey的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。TiKV 的 API 在 KV 键值对层⾯提供对分布式事务的原⽣⽀持,默认提供了 SI (Snapshot Isolation) 的隔离级别,这也是 TiDB 在SQL 层⾯⽀持分布式事务的核⼼。TiDB 的 SQL 层做完 SQL 解析后,会将 SQL 的执⾏计划转换为对TiKV API 的实际调⽤。所以,数据都存储在 TiKV 中。另外,TiKV 中的数据都会⾃动维护多副本(默认为三副本),天然⽀持⾼可⽤和⾃动故障转移。

TiKV实际上是一个集群,在集群当中有很多TiKV很多服务器,对于分布式系统而言,需要多台服务器 让数据可以实现高性能和高可用的访问。

数据是如何保存的,副本是如何同步的。

首先数据会转变成kv 键值对的形式进行存储。存储在TiKV Map中(这个单元非常大)。 在这个map里面保存了所有kv键值对。

raft group:raft共识算法, 集群的目的是为了数据访问的性能和高可用,采用raft算法,它会选择某一台服务器作为leader,leader会将数据同步到flower 服务器中。这条记录在其他flower 服务器上同步成功后,才意味着这条数据写入成功。 好处:一条数据在三个节点上有副本,在查询它的时候,可以在不同的服务器并行的读。 另外一个flower出现故障,并不会影响这条数据的访问。 当然如果leader挂掉了,会有影响,需要在剩下的flower中选举出一个新的leader,通过它完成数据的写入,同步。 数据的副本(以region为单位) 它会在一个 Raft group当中进行同步,如果它里面有一个leader 两个flower

副本的同步,细粒度应该设置多少合适,一条KV就同步一次(在kv层),则会非常频繁,显然是不合适的。 但如果将整个TiKV Map作为副本的同步,则存在太大的问题,因为所有数据都在里面。 这个时候就有一个Region的概念,region 它默认大小是96M

在这里插入图片描述
节点间同步的单位就是一个Region。 region 会根据key的字节序列进行排序,然后放到region。 region不会像一个kv键值对粒度那么小,也不会像Map那么大。

RocksDB: 它作为存储引擎,将对应的数据落盘到TiKV server中。

  • TiFlash:TiFlash 是⼀类特殊的存储节点。和普通 TiKV 节点不⼀样的是,在TiFlash 内部,数据是以列式的形式进⾏存储,主要的功能是为分析型的场景加速。

这些数据会存放在多个 TiKV的region中。此时 region 1 、 region 2 、 region 3 < 这1 2 3说的是对应 region的leader>当中都有category_id=1的数据 。 当然这些是region 在其他TiKV有对应的flower。
这涉及到一个并行的操作
TiDB Server 得知道这些数据是在哪些TiKV Region当中(通过询问PD).
然后将这些数据在这些不同的TiKV上执行, 这些动作是在TiKV server上。(图片右边)。 然后在对应TiKV上得到对应结果。 例如 region1 上得到2条, region2 上得到3 条, region3 得到5条。

然后将这些数据 交给TiDB Server上,TiDB Server上进行汇总。
其实具体的操作,脏活累活 是交给TiKV Server处理,TiDB是将结果进行汇总。第二步 进行过滤

5.4 PD (Placement Driver) Server

整个 TiDB 集群的元信息管理模块,负责存储每个 TiKV 节点实时的数据分布情况和集群的整体拓扑结构,提供 TiDB Dashboard 管控界⾯,并为分布式事务分配事务ID。PD 不仅存储元信息,同时还会根据 TiKV 节点实时上报的数据分布状态,下发数据调度命令给具体的 TiKV 节点,可以说是整个集群的“⼤脑”。此外,PD 本身也是由⾄少 3 个节点构成,拥有⾼可⽤的能⼒。建议部署奇数个 PD 节点。(也是采用Raff 协议 leader flower)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_316219.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

两个链表相加

描述 假设链表中每一个节点的值都在 0 - 9 之间&#xff0c;那么链表整体就可以代表一个整数。 给定两个这种链表&#xff0c;请生成代表两个整数相加值的结果链表。 数据范围&#xff1a;0≤n,m≤1000000&#xff0c;链表任意值 0≤val≤9 要求&#xff1a;空间复杂度 O(n)…

智慧矿山成行业新趋势,千寻位置助力企业数字化转型

随着政策推动和科技发展&#xff0c;智慧矿山已成为矿业行业的趋势和未来的方向。 智慧矿山就是以矿山数字化、信息化为前提和基础&#xff0c;对矿山生产、人员健康与安全、技术支持与后勤保障等进行主动感知、自动分析、快速处理&#xff0c;最终实现安全矿山、无人矿山、高效…

3ds Max - Pivot Painter Tool

很久之前的笔记&#xff0c;整理归档&#xff1b; Pivot Painter Tool是3dsMax中的插件&#xff0c;主要是辅助将Mesh中每个Element生成自己的Pivot Position&#xff0c;方便如使用World Position Offset对每个Element进行精确控制&#xff0c;导入使用Pivot Painter Tool工具…

java读取文件内容

直接上代码&#xff0c;两个类&#xff1a;一个工具类&#xff0c;一个测试类 工具类代码&#xff1a; package org.example.study.util;import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils;import java.io.*; import java.nio.charset.Charset…

企业转型在搭建BI时,需要注意什么

如今&#xff0c;商业智能BI在全世界范围内掀起了一股热潮&#xff0c;形成了一个庞大的市场&#xff0c;在信息化时代&#xff0c;企业需要借助BI来进行更好的成长。 在这种全新的社会、商业BI环境下&#xff0c;各行各业的企业都开始寻求探索新的商业模式&#xff0c;通过转…

python + pytest 接口自动化 —— 参数关联

什么是参数关联&#xff1f; 参数关联&#xff0c;也叫接口关联&#xff0c;即接口之间存在参数的联系或依赖。在完成某一功能业务时&#xff0c;有时需要按顺序请求多个接口&#xff0c;此时在某些接口之间可能会存在关联关系。 比如&#xff1a;B接口的某个或某些请求参数是…

Spring Security--会话管理

就像登录qq一样&#xff0c;一个手机登录会将另外一个手机挤下线&#xff0c;这个就叫会话管理。 这个东西非常简单&#xff0c;在默认情况下可以登录n多次&#xff0c;一旦开启&#xff0c;就不允许登录多个。 什么是一个会话。 我们简单理解就是一个浏览器的同一个用户算一…

0基础转行,网路工程和网络安全哪个更有发展前景?

对于初学者而言&#xff0c;初入IT行业最重要的就是选择一个热门且前景好的职业&#xff0c;而网络工程和网络安全作为IT行业的热门职业必然成为很多人的首选&#xff0c;那么网络工程和网络安全哪个发展前景好?小编带大家详细了解一下。 首先&#xff0c;我们对网络工程和网络…

聊一聊近期测试行情以及个人的感受

众所周知&#xff0c;去年年底的裁员潮再加上今年的疫情影响&#xff0c;失业、找工作成为了蛮多人的当务之急。最近一些招聘网站也出现被刷爆的情况&#xff0c;其中顺利找到工作的并不多&#xff0c;说明行情很冷&#xff0c;但是总有许多人顺利跳槽。 其实对于大牛来说&…

工具篇--4 消息中间件-RabbitMq 模型介绍

1 介绍: RabbitMQ 是一个开源的消息中间件&#xff0c;它实现了 AMQP&#xff08;高级消息队列协议&#xff09;标准&#xff0c;并且支持多种语言和操作系统&#xff0c;包括 Java、Python、Ruby、PHP、.NET、MacOS、Windows、Linux 等等。RabbitMQ 提供了可靠的消息传递机制…

号称 Java 面试八股文天花板(2023 最新版)首次开源

咱们先来说说&#xff1a; 最近感慨面试难的人越来越多了&#xff0c;一方面是市场环境&#xff0c;更重要的一方面是企业对 Java 的人才要求越来越高了。 基本上这样感慨的分为两类人&#xff0c;第一&#xff0c;虽然挂着 3、5 年经验&#xff0c;但肚子里货少&#xff0c;也…

Element常用组件之 表单组件 form

1. 建立form.vue <template><el-form ref"form" :model"form" label-width"80px"><el-form-item label"活动名称"><el-input v-model"form.name"></el-input></el-form-item><el-f…

怎样高效率备考PMP

一方面由于这些考试的知识&#xff0c;在准备考试前我们大部分很少接触&#xff0c;大部分人考试的目的也未必是感兴趣&#xff0c;更多是因为考试结果能给我们带来的收益。因此长时间的学习不熟悉甚至不感兴趣的很容易疲倦&#xff0c;这不像我们工作或生活中的一些技能&#…

Springboot Apollo配置yml

1.背景&#xff1a; 项目都是配置的Apollo配置中心来进行配置的。新功能需要yml格式的数据&#xff08;层级结构更清晰&#xff09; 2.问题&#xff1a; 1&#xff09;Apollo是否支持yml格式的配置信息&#xff1f; 2&#xff09;配置好了以后读取不到Apollo配置的yml。 3…

从美颜算法到AI美颜SDK:美丽的背后隐藏着什么?

在年轻人的生活中&#xff0c;通过美颜SDK类型的美颜工具进行拍摄已经成为了一种全新的文化现象。时下&#xff0c;AI美颜、美颜SDK讨论热点极高&#xff0c;那么大家知道美颜算法和AI美颜到底有什么不同吗&#xff1f;它们背后隐藏着什么样的技术和思想&#xff1f; 一、美颜算…

Visual Studio Code Arduino资源占用和效率对比

Visual Studio Code&Arduino资源占用和效率对比 系统资源占用&#xff1a;编译效率&#xff1a; 这段时间在玩ESP32&#xff0c;闲来无事对比了一下Visual Studio Code后面简称VS和Arduino的效率和资源占用&#xff0c;只是大致的对比&#xff0c;没有斤斤计较。 配置为&am…

防雷抗浪涌插排插座推荐,同为科技(TOWE)防雷桌面PDU安全可靠

同为科技TOWE双排防雷抗浪涌桌面PDU插座 随着夏天天气越来越热&#xff0c;强对流天气增多&#xff0c;雷雨天气频发。在雷电季节&#xff0c;通常影响家用电器安全的主要原因是由于雷电感应的侵入&#xff0c;特别是对绝缘强度低、过电压耐受力差的微电子产品影响甚大。而所谓…

【spring源码系列-05】refresh中prepareRefresh方法的执行流程

Spring源码系列整体栏目 内容链接地址【一】spring源码整体概述https://blog.csdn.net/zhenghuishengq/article/details/130940885【二】通过refresh方法剖析IOC的整体流程https://blog.csdn.net/zhenghuishengq/article/details/131003428【三】xml配置文件启动spring时refres…

Golang | Web开发之Gin多服务配置及优雅关闭平滑重启

欢迎关注「全栈工程师修炼指南」公众号 点击 &#x1f447; 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习&#xff01; 专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享 “ 花开堪折直须折&#xf…

计算机组成原理 | 深入理解ELF格式和静态链接

深入解析C语言代码到机器码的过程 #mermaid-svg-UhCa4aLgwtwtM4hS {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UhCa4aLgwtwtM4hS .error-icon{fill:#552222;}#mermaid-svg-UhCa4aLgwtwtM4hS .error-text{fill:#5…