001、体系结构之概述

news2024/11/15 21:30:40

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.coloradmin.cn/o/637919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软件测试】自动化测试常见问题(总结),我不再背锅...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、为什么要进行自…

红外感应水龙头方案,低功耗红外模块,支持探侦测学习WTU201F2

随着科技不断进步&#xff0c;智能化设备在各个领域得到了广泛的运用&#xff0c;红外感应智能化水龙头方案正在成为趋势&#xff0c;不仅为人们的生活带来了更多的便利性和舒适性&#xff0c;还能节约一定水资源。 在红外测距方案这个领域中&#xff0c;低功耗、抗干扰性强、…

Java教程:若依框架自带导出功能如何实现相同值合并单元格功能

----这段时间一直在用若依的框架做开发&#xff0c;非常方便&#xff0c;其中自带了导入导出功能&#xff0c;但默认的导出只能是一条一条数据&#xff0c;没有合并行功能&#xff0c;于是就在若依的gitee提交仓库请求中找到了这个方案&#xff0c;使用简单&#xff0c;步骤如下…

制冷机UL563测试?亚马逊美国站要求卖家提供UL测试报告!

制冰机是一种将水通过蒸发器由制冷系统制冷剂冷却后生成冰的制冷机械设备&#xff0c;采用制冷系统&#xff0c;以水载体&#xff0c;在通电状态下通过某一设备后制造出冰。 为什么做UL测试报告&#xff1a; 电子产品乃是亚马逊美国站的销售NO1&#xff0c;亚马逊电子产品的卖…

【更新日志 v3.5.1】WRITE-BUG数字空间

保存草稿功能失效 文件贴标签功能失效 ⚙ 功能优化 圈子排序优化 ✅ v3.4.1 更新日志 2023年4月11日 &#x1f60e; 新增功能 内容分页 加载更多学习圈功能 &#x1f47e; bug修复 修复标签hover消失 批注抖动bug 编辑器bug 列表显示全部成员 系统通知修复 代码仓库显示问题 ⚙…

Vision Transformer综述 part II

Vision Transformer综述 1. Transformer简介2. Transformer组成2.1 Self-AttentionMulti-Head Attention&#xff08;多头注意力&#xff09; 2.2 Transformer的其他关键概念2.2.1 Feed-Forward Network 前馈网络2.2.2 Residual Connection 残差连接2.2.3 解码器中的最后一层 3…

Html 下拉选择框 按钮 块

下拉选择框标签 下拉选择框标签&#xff1a;<select></select> 属性描述&#xff1a; 下拉选择框选择标签&#xff1a;<option></option> 属性详情&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"…

新畅美容美发平台V2.1.18 公众号+小程序【平台订单辅助+平台取号+门店插件+平台收银插件】

新畅美容美发平台是一款专注于美容美发等行业的小程序平台【微擎模块版】&#xff0c;专注于提供服务预约行业问题解决方案&#xff0c;涵盖预约服务&#xff0c;商品购买&#xff0c;会员系统&#xff0c;套餐卡项购买&#xff0c;积分商城&#xff0c;商家营销&#xff0c;文…

临近毕业招聘季,BOSS直聘依然困在营销里

临近毕业招聘季&#xff0c;BOSS直聘依然困在营销里。 近日&#xff0c;看准科技有限公司&#xff08;下称&#xff1a;“BOSS直聘”&#xff0c;NASDAQ&#xff1a;BZ&#xff09;公布了2023年一季度财报。 5月25日&#xff0c;财报公布后的首个交易日&#xff0c;其股价下跌…

软件问题解决:Origin的续期使用_导出的图片带有水印

问题&#xff1a; 我们在下载了Origin官方版本的时候&#xff0c;需要通过使用验证码进行验证&#xff0c;否则只能使用几天的时间&#xff0c;时间一旦过了就不能够正常使用了&#xff08;如导出的图片带有水印&#xff09;&#xff0c;为此给出的解决方案如下。 解决方案&am…

JDK8 中 ConcurrentHashMap 变化

结构简单&#xff1a;JDK8 抛弃 JDK7 的 Segment 分段锁机制&#xff0c;由 JDK7 的两级数组变回了原来的一级数组。链表长度>8&#xff0c;该链表转换为红黑树。 降低锁的粒度&#xff1a;锁住数组的每个桶的头结点&#xff0c;锁粒度更小。&#xff08;Hashtable 是锁住整…

新型糖基化氨基酸:Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH,化学CAS号174783-92-7

●英文名&#xff1a;Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH ●外观以及性质&#xff1a; Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH中通过对蛋白进行复杂蛋白糖基化修饰&#xff0c;细胞产生了极大丰度的蛋白质类型&#xff1b;通过对各类糖基…

适合做读书笔记的工具 这款APP满足你的笔记需求

说到读书&#xff0c;就免不了要提到读书笔记。很多人认为&#xff0c;边读书边做笔记才能更好地帮助我们更深入地理解和记忆所读的书籍内容。通过记录书中的重要观点、论据、事实和例子&#xff0c;我们可以更好地掌握书中的知识和思想&#xff0c;而不是仅仅浏览、快速阅读或…

window环境下有事无法下载sentry-cli.exe包解决方案

报错&#xff1a;Error: Unable to download sentry-cli binary from解决方案&#xff1a;查看下载配置 可通过修改SENTRYCLI_CDNURL来改变下载包的地址&#xff0c;手动把包下载下来&#xff0c;然后更改地址 window可以使用&#xff1a;set SENTRYCLI_CDNURLxxx&& n…

led显示屏是如何扫描驱动的

LED显示屏的扫描驱动是指将图像信号分解并按行或按列逐行/逐列地驱动LED点阵&#xff0c;以显示完整的图像。以下是LED显示屏常见的两种扫描驱动方式&#xff1a; 静态扫描驱动&#xff1a; 静态扫描驱动是最简单和最常见的驱动方式。在静态扫描驱动中&#xff0c;每个LED像素都…

怎么利用代理IP优化网络爬虫

网络爬虫会自动扫描互联网&#xff0c;搜集大量数据并将它们组织起来。但是&#xff0c;许多网站都采取了反爬虫策略&#xff0c;限制了网络爬虫的活动。这时候&#xff0c;代理IP就起到了关键作用。 一、代理ip在网络爬虫中的作用 代理ip爬虫中使用代理IP有很多好处。首先&…

EasyExcel 批量导入并校验数据

文章目录 前言一、pom二、使用步骤1.导入对象2.读入数据并保存 前言 EasyExcel 批量导入并校验数据 一、pom <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.7</version></depend…

【图像处理】基于收缩系数的粒子群优化和引力搜索算法的多级图像阈值研究【CPSOGSA】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Android性能优化大法——内存优化

作者&#xff1a;layz4android 内存&#xff0c;是Android应用的生命线&#xff0c;一旦在内存上出现问题&#xff0c;轻者内存泄漏&#xff0c;重者直接crash&#xff0c;因此一个应用保持健壮&#xff0c;内存这块的工作是持久战&#xff0c;而且从写代码这块就需要注意合理性…