当前位置: 首页 > article >正文

《ShardingSphere解读》04 配置驱动:ShardingSphere 中的配置体系是如何设计的?

ShardingSphere 提供了高度抽象的配置体系开发者只需通过声明式配置即可定义分片规则、读写分离策略、数据脱敏规则等而无需关心底层的复杂实现。那么这套配置体系究竟是如何设计的它包含了哪些核心概念不同的配置方式背后又遵循着怎样的实现原理本篇将深入剖析 ShardingSphere 的配置体系为你揭开其神秘面纱。一、行表达式配置的“语法糖”在深入配置体系之前必须先了解 ShardingSphere 中一个极其实用的功能——行表达式。它是一种轻量级的动态表达式语言用于简化配置中的重复性描述尤其在定义数据节点和分片算法时发挥着重要作用。1.1 行表达式的基本语法行表达式的使用非常直观只需要在配置中使用${expression}或$-{expression}形式即可。其中${begin..end}表示从begin到end的范围区间而多个${expression}之间用.连接表示多个范围的笛卡尔积。例如表达式ds${0..1}.user${0..1}将解析为ds0.user0ds0.user1ds1.user0ds1.user1这一过程可以用下图直观展示除了范围表示法行表达式还支持枚举${[enum1, enum2, ...]}。因此上面的表达式也可以写成ds${[0,1]}.user${[0,1]}效果完全相同。1.2 行表达式在分片算法中的应用行表达式另一个典型应用场景是配置分片算法。例如我们见过这样的配置ds${age % 2}它表示根据age字段对 2 取模动态路由到ds0或ds1。这种表达方式极大地简化了分片算法的配置开发者无需编写复杂的 Java 代码只需一行表达式即可完成。1.3 注意事项由于${expression}与 Spring 属性占位符如${...}存在冲突当在 Spring 环境中使用时推荐采用$-{expression}的形式以避免解析混淆。行表达式作为配置的“语法糖”让 ShardingSphere 的配置变得更加简洁、直观。接下来我们将正式进入配置体系的核心看看 ShardingSphere 到底定义了哪些配置项。二、ShardingSphere 核心配置解析ShardingSphere 的配置体系以规则为中心每种功能分片、读写分离、数据脱敏等对应一个规则配置类。其中分片引擎是最核心的功能其配置也是最复杂的。下面我们以分片引擎为例逐一剖析其核心配置项。2.1 ShardingRuleConfiguration分片规则的顶层入口ShardingRuleConfiguration是所有分片相关配置的容器它聚合了多个子配置包括表规则、绑定表、广播表、默认策略等。其类结构如下各属性含义如下属性类型说明tableRuleConfigsCollectionTableRuleConfiguration表分片规则列表每个逻辑表对应一个配置是必须配置的项。bindingTableGroupsCollectionString绑定表组将具有相同分片规则的主表与子表关联避免跨库关联查询。broadcastTablesCollectionString广播表指那些数据量小、需要同步到所有分片的表如字典表。defaultDataSourceNameString默认数据源当分片规则无法匹配时路由到该数据源。defaultDatabaseShardingStrategyConfigShardingStrategyConfiguration默认分库策略若表规则未指定分库策略则使用此默认策略。defaultTableShardingStrategyConfigShardingStrategyConfiguration默认分表策略若表规则未指定分表策略则使用此默认策略。defaultKeyGeneratorConfigKeyGeneratorConfiguration默认自增列生成器配置。masterSlaveRuleConfigsCollectionMasterSlaveRuleConfiguration读写分离规则配置可定义多个主从架构。encryptRuleConfigEncryptRuleConfiguration数据脱敏规则配置。2.2 TableRuleConfiguration表级分片规则TableRuleConfiguration是实际定义逻辑表如何分片的配置类。其核心属性如下logicTable逻辑表名在 SQL 中使用的表名例如t_order。actualDataNodes真实数据节点由数据源名和表名组成支持行表达式。例如ds${0..1}.t_order${0..1}。databaseShardingStrategyConfig分库策略决定 SQL 路由到哪个数据源。tableShardingStrategyConfig分表策略决定 SQL 路由到该数据源下的哪张表。keyGeneratorConfig分布式主键生成器配置如雪花算法、UUID 等。2.3 ShardingStrategyConfiguration分片策略的抽象ShardingStrategyConfiguration是一个空接口其实现类代表了不同的分片策略。类层次结构如下StandardShardingStrategy标准分片策略支持单分片键并提供精确分片算法PreciseShardingAlgorithm和范围分片算法RangeShardingAlgorithm。ComplexShardingStrategy复合分片策略支持多分片键使用ComplexKeysShardingAlgorithm。InlineShardingStrategy行表达式分片策略通过行表达式定义分片算法如age % 2。HintShardingStrategy强制路由分片策略通过 Hint 方式指定分片目标不依赖 SQL 中的分片键。NoneShardingStrategy无分片策略适用于不需要分片的表。2.4 KeyGeneratorConfiguration分布式主键生成器分布式环境下数据库自增主键无法保证全局唯一因此需要引入分布式主键生成器。KeyGeneratorConfiguration用于配置生成器public class KeyGeneratorConfiguration { private String column; // 自增列名 private String type; // 生成器类型如 SNOWFLAKE、UUID private Properties props; // 生成器属性如雪花算法的 workerId }ShardingSphere 内置了雪花算法SNOWFLAKE和 UUID 两种实现开发者也可通过 SPI 机制自定义。三、四种配置方式详解ShardingSphere 提供了四种配置方式以适应不同的开发场景和团队偏好。下面逐一介绍其特点及使用示例。3.1 Java 代码配置Java 代码配置是最原始的方式直接使用 ShardingSphere 提供的 API 构建配置对象。优点是类型安全、IDE 友好适合对底层原理的学习和定制化开发缺点是配置变更需重新编译不利于动态管理。示例构建分片数据源// 配置真实数据源 MapString, DataSource dataSourceMap new HashMap(); dataSourceMap.put(ds0, createDataSource(jdbc:mysql://localhost:3306/ds0)); dataSourceMap.put(ds1, createDataSource(jdbc:mysql://localhost:3306/ds1)); // 配置 t_order 表规则 TableRuleConfiguration orderTableRule new TableRuleConfiguration(t_order, ds${0..1}.t_order${0..1}); orderTableRule.setDatabaseShardingStrategyConfig(new InlineShardingStrategyConfiguration(user_id, ds${user_id % 2})); orderTableRule.setTableShardingStrategyConfig(new InlineShardingStrategyConfiguration(order_id, t_order${order_id % 2})); // 配置分片规则 ShardingRuleConfiguration shardingRuleConfig new ShardingRuleConfiguration(); shardingRuleConfig.getTableRuleConfigs().add(orderTableRule); // 获取数据源 DataSource dataSource ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, new Properties());3.2 Yaml 配置Yaml 配置是 ShardingSphere 官方推荐的配置方式具有结构清晰、可读性强、易于版本管理等优点。配置可独立于代码存放通过加载 Yaml 文件动态创建数据源。示例分片配置sharding.yamldataSources: ds0: !!com.zaxxer.hikari.HikariDataSource driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://localhost:3306/ds0 username: root password: root ds1: !!com.zaxxer.hikari.HikariDataSource driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://localhost:3306/ds1 username: root password: root shardingRule: tables: t_order: actualDataNodes: ds${0..1}.t_order${0..1} databaseStrategy: inline: shardingColumn: user_id algorithmExpression: ds${user_id % 2} tableStrategy: inline: shardingColumn: order_id algorithmExpression: t_order${order_id % 2} bindingTables: - t_order defaultDataSourceName: ds0加载 Yaml 文件File yamlFile new File(path/to/sharding.yaml); DataSource dataSource YamlShardingDataSourceFactory.createDataSource(yamlFile);3.3 Spring Boot 配置Spring Boot 已成为 Java 微服务的事实标准ShardingSphere 提供了spring-boot-starter只需在application.properties或application.yml中添加配置即可。示例Spring Boot 分片配置# 数据源定义 spring.shardingsphere.datasource.namesds0,ds1 spring.shardingsphere.datasource.ds0.typecom.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.ds0.driver-class-namecom.mysql.jdbc.Driver spring.shardingsphere.datasource.ds0.jdbc-urljdbc:mysql://localhost:3306/ds0 spring.shardingsphere.datasource.ds0.usernameroot spring.shardingsphere.datasource.ds0.passwordroot spring.shardingsphere.datasource.ds1.typecom.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.ds1.driver-class-namecom.mysql.jdbc.Driver spring.shardingsphere.datasource.ds1.jdbc-urljdbc:mysql://localhost:3306/ds1 spring.shardingsphere.datasource.ds1.usernameroot spring.shardingsphere.datasource.ds1.passwordroot # 分片规则 spring.shardingsphere.sharding.tables.t_order.actual-data-nodesds$-{0..1}.t_order$-{0..1} spring.shardingsphere.sharding.tables.t_order.database-strategy.inline.sharding-columnuser_id spring.shardingsphere.sharding.tables.t_order.database-strategy.inline.algorithm-expressionds$-{user_id % 2} spring.shardingsphere.sharding.tables.t_order.table-strategy.inline.sharding-columnorder_id spring.shardingsphere.sharding.tables.t_order.table-strategy.inline.algorithm-expressiont_order$-{order_id % 2} spring.shardingsphere.sharding.binding-tablest_order # 属性配置 spring.shardingsphere.props.sql.showtrue通过这四种方式开发者可以根据项目实际情况灵活选择。其中Yaml 和 Spring Boot 配置是当前最主流的用法。四、配置体系的实现原理了解了配置的使用方式后我们不禁要问这些配置是如何转化为 ShardingSphere 内部对象的其底层实现机制是什么下面以 Yaml 配置为例深入剖析配置体系的实现原理。4.1 从 ShardingRuleConfiguration 到 DataSource无论采用哪种配置方式最终目标都是构建一个DataSource对象供应用使用。以 Java 代码配置为例ShardingDataSourceFactory是入口public final class ShardingDataSourceFactory { public static DataSource createDataSource( MapString, DataSource dataSourceMap, ShardingRuleConfiguration shardingRuleConfig, Properties props) throws SQLException { return new ShardingDataSource(dataSourceMap, new ShardingRule(shardingRuleConfig, dataSourceMap.keySet()), props); } }ShardingRule是对ShardingRuleConfiguration的封装内部完成了规则校验、策略初始化等操作。因此配置体系的核心就是将外部配置Yaml/Spring转换为ShardingRuleConfiguration对象。4.2 Yaml 配置的加载与转换ShardingSphere 为 Yaml 配置设计了一套完整的解析与转换机制核心类图如下流程如下加载 Yaml 文件YamlEngine.unmarshal(yamlFile, YamlRootShardingConfiguration.class)通过 SnakeYAML 库将文件内容解析为YamlRootShardingConfiguration对象。获取 Yaml 规则从YamlRootShardingConfiguration中获取YamlShardingRuleConfiguration。转换为核心规则调用ShardingRuleConfigurationYamlSwapper.swap(yamlShardingRuleConfiguration)将 Yaml 配置对象转换为ShardingRuleConfiguration。创建 DataSource将dataSourceMap、转换后的ShardingRuleConfiguration和props传入ShardingDataSourceFactory.createDataSource最终得到DataSource。其中ShardingRuleConfigurationYamlSwapper的swap方法实现了字段的一一映射代码结构清晰例如Override public ShardingRuleConfiguration swap(final YamlShardingRuleConfiguration yamlConfiguration) { ShardingRuleConfiguration result new ShardingRuleConfiguration(); // 转换表规则 for (EntryString, YamlTableRuleConfiguration entry : yamlConfiguration.getTables().entrySet()) { YamlTableRuleConfiguration tableRuleConfig entry.getValue(); tableRuleConfig.setLogicTable(entry.getKey()); result.getTableRuleConfigs().add(tableRuleConfigurationYamlSwapper.swap(tableRuleConfig)); } // 转换绑定表 result.getBindingTableGroups().addAll(yamlConfiguration.getBindingTables()); // 转换默认策略 if (null ! yamlConfiguration.getDefaultDatabaseStrategy()) { result.setDefaultDatabaseShardingStrategyConfig( shardingStrategyConfigurationYamlSwapper.swap(yamlConfiguration.getDefaultDatabaseStrategy())); } // ... 其他字段 return result; }4.3 Spring 命名空间与 Spring Boot 的实现Spring 命名空间和 Spring Boot Starter 的实现原理类似都是通过 Spring 的扩展机制将配置转换为 ShardingSphere 的内部对象。Spring 命名空间通过实现NamespaceHandler和BeanDefinitionParser将 XML 元素解析为对应的BeanDefinition最终创建出DataSource实例。Spring Boot Starter通过Configuration和ConditionalOnProperty等注解自动加载配置并创建DataSource。其核心是ShardingSphereAutoConfiguration类它读取spring.shardingsphere前缀的配置构建规则对象并返回数据源。由于篇幅限制这里不再展开后续将专门讲解 ShardingSphere 与 Spring 的集成原理。五、小结本篇深入剖析了 ShardingSphere 的配置体系从行表达式这一“语法糖”入手详细介绍了分片核心配置项ShardingRuleConfiguration、TableRuleConfiguration、ShardingStrategyConfiguration、KeyGeneratorConfiguration的含义与作用。随后我们对比了四种配置方式Java 代码、Yaml、Spring 命名空间、Spring Boot并给出了具体示例。最后从源码层面揭示了 Yaml 配置的加载与转换机制帮助读者理解配置体系的底层实现。掌握配置体系是熟练使用 ShardingSphere 的基础。后续我们将基于这些配置深入探讨分片引擎的执行流程、读写分离、数据脱敏等高级功能。思考题在 ShardingSphere 中配置体系相关的核心类之间存在什么样的关联关系结合本篇的类图尝试画出 Yaml 配置到核心配置的完整转换链条。欢迎在评论区分享你的理解。

相关文章:

《ShardingSphere解读》04 配置驱动:ShardingSphere 中的配置体系是如何设计的?

ShardingSphere 提供了高度抽象的配置体系,开发者只需通过声明式配置即可定义分片规则、读写分离策略、数据脱敏规则等,而无需关心底层的复杂实现。那么,这套配置体系究竟是如何设计的?它包含了哪些核心概念?不同的配置…...

《ShardingSphere解读》03 JDBC 规范与 ShardingSphere 是什么关系?

在上一篇中,我们全面了解了 ShardingSphere 作为 Apache 顶级开源软件的发展历程、设计理念和核心功能。其中特别强调了一点:ShardingSphere 是一种典型的客户端分片解决方案,而客户端分片的核心实现方式之一就是重写 JDBC 规范。ShardingSph…...

【GitHub开源项目】一文学会Git提交本地代码到GitCode远程代码仓库)

摘要 本文详细讲解如何将本地代码提交到GitCode远程仓库的全流程。内容涵盖Git基础概念、安装配置、本地仓库初始化、提交规范、远程连接、分支管理与合并策略,以及常见问题解决方案。 目录 Git基础介绍与安装配置本地仓库初始化与文件添加提交更改与提交信息规范…...

智慧矿井监测数据集 矿车载人状态检测 矿车数据集 矿山井下作业安全监测、违规载人行为自动识别、智能视频监控预警第10563期

计算机视觉数据集数据集概览 本数据集聚焦矿山井下场景,针对矿车载人状态检测设计,适用于目标检测类深度学习模型训练与验证。项目内容类别数量2类类别中文名称正常情况、载人图像数量900张数据集格式YOLO格式核心应用价值矿山井下作业安全监测、违规载人…...

00后天才少女创业,Axiom获2亿美元A轮融资冲击AI上限

2亿美元A轮融资,Axiom估值飙升至16亿美元 近日,洪乐潼创立的AI初创公司Axiom完成了2亿美元的A轮融资,由Menlo Ventures领投,Greycroft、Madrona Venture、B Capital、Toyota Ventures等老股东继续追加投资。至此,公司估…...

马斯克 xAI 人事动荡,项目困境何解?

近日,马斯克的 AI 创业公司 xAI 人事变动剧烈,3 年前 11 名联合创始人仅 2 人在职。同时,其 AI 智能体项目“巨硬”困境重重,产品未达承诺。人事变动:华人联合创始人全离职3 年前 xAI 的 11 名联合创始人,如…...

Violoop:AI Agent 领域的破局者?

3 月 12 日,Violoop 宣布完成数千万元种子轮和天使轮融资。这家专注 AI PC 自动化硬件的中国创业公司,以独特路径探索 AI Agent 落地,有望打破行业格局。融资助力发展Violoop 完成两轮融资,资金将用于产品量产、市场推广和数据集构…...

AI 浪潮下软件行业的变革与重塑

AI 赋能:软件开发进入新时代两名 19 岁高中生凭借 AI 卡路里追踪应用 Cal AI 年收入超 3000 万美元,AI 编程公司 Cursor 年化收入超 20 亿美元,这些案例彰显了 AI 在软件领域的巨大潜力。Cursor 公司内部超三分之一的代码由 AI 完全自主完成&…...

三月估值翻四倍,Kimi改写AI叙事?

投资界消息,月之暗面Kimi正以180亿美元投前估值进行10亿美元融资。不到三个月,其估值翻四倍,成中国最快“十角兽”,业务端也迎来爆发。融资速度惊人去年底Kimi完成5亿美元C轮融资,投后估值43亿美元。春节期间超7亿美元…...

个人微信接入龙虾全攻略:官方合规直连,模型运行清晰,新手零门槛上手

个人微信接入龙虾全攻略:官方合规直连,模型运行清晰,新手零门槛上手 近期微信官方开放合规通道,个人微信终于能直接接入OpenClaw(俗称“龙虾”),不用再碰违规插件、不用担心里程碑封号风险&…...

抽象、建模与系统化:人类文明进步的通用算法

在人类漫长的历史中,从钻木取火到登月探索,从结绳记事到大语言模型,每一次重大突破似乎都源于某种深层的认知机制。这种机制并非神秘天赋,而是一种可被识别、学习和复用的方法论。本文将深入探讨这一方法论的核心三要素&#xff1…...

一语一世界:从平凡句子到人工智能的奇妙旅程

在人类文明的长河中,最震撼的突破往往源于对最平凡事物的深刻洞察。铀矿石不过是地壳中一种普通的矿物,却因人类对其原子结构的探索,最终释放出足以改变世界的能量;而书页上一句再普通不过的话——“今天天气很好”——竟也能成为…...

实用C盘清理图文教程(2026最新版):安全有效C盘清理清理方法,远离C盘爆红,清理C盘不误删文件

C盘爆满怎么办?2026年有效的C盘清理方法,让你的电脑快速释放几十个G! 如何清理Win系统下的C盘?C盘爆红怎么处理?有什么好用的C盘清理工具? 关于C盘清理工具,给大家安排一款针对C盘爆满的清理神…...

C盘清理,C盘变红解决方法最全指南(2026最新版),轻松解决C盘爆满问题,c盘怎么清理垃圾而不误删文件

我们使用电脑发现 C盘空间不足 时,第一反应只是“磁盘快满了”,但实际上: Windows 系统缓存、更新残留会在 C盘长期累积 C盘满了会 明显拖慢开机速度和软件响应 软件默认安装在 C盘,空间不足容易导致 程序闪退、更新失败 部分系统…...

三菱 FX2N PLC 控制步进电机:探索自动化控制之路

No.130 三菱 FX2N PLC控制步进电机在自动化控制领域,步进电机凭借其精确的位置控制和良好的调速性能,应用极为广泛。而三菱 FX2N PLC 作为一款经典的可编程逻辑控制器,在与步进电机配合实现精确控制方面有着出色的表现。今天咱们就来聊聊如何…...

打造 Spring Boot + Vue 的库存管理系统:技术融合与实践

基于springbootvue库存管理系统springbootvuemybatismysqlspringboot在当今数字化浪潮下,构建高效的库存管理系统对于企业运营至关重要。本文将带大家走进基于 Spring Boot Vue 技术栈,搭配 MyBatis 和 MySQL 的库存管理系统开发之旅。 Spring Boot&…...

生成式深度学习(四)

原文:Generative Deep Learning 译者:飞龙 协议:CC BY-NC-SA 4.0 第十四章:结论 2018 年 5 月,我开始着手第一版这本书的工作。五年后,我对生成 AI 的无限可能性和潜在影响感到比以往任何时候都更加兴奋。…...

PyTorch DDP分布式训练超快

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 PyTorch DDP分布式训练:实现超快训练的深度解析目录PyTorch DDP分布式训练:实现超快训练的深度解析 引言…...

工厂的历史演进:从工业革命到智能时代

工厂的历史演进:从工业革命到智能时代摘要工厂作为现代工业社会的核心组织形式,其发展历程深刻反映了人类生产方式、社会结构和文明形态的变革。本报告通过系统梳理工厂从18世纪工业革命起源到21世纪智能时代的发展脉络,全面分析了工厂制度的…...

计算机毕业设计 | SpringBoot小米商城 购物管理系统(附源码)

1,绪论 1.1 背景调研 电子商城的建设,不仅仅是初级网上购物的实现,它能够有效地在Internet上构架安全的和易于扩展的业务框架体系,实现BToB(企业对企业)、BToC(企业对用户)以及CTo…...

OpenClawd的一个神器技能Skill Creator

这家伙,甚至可以说是整个Skills生态的基石。 Skill-creator 如今,小龙虾之所以能拥有如此出众的能力,在同类事物中脱颖而出,其中一半的功劳都要归功于各类实用的Skill。这些Skill涵盖了不同场景下的需求,能够精准赋能小龙虾,让它在使用过程中更高效、更便捷,而这些多样…...

PAT 乙级 1093

依旧简单的一集。字符也可以当成 int 型整数来用。 #include<bits/stdc.h> using namespace std;int main() {string a, b;getline(cin, a);getline(cin, b);string s a b;int v[150] {0};for(int i 0; i < s.size(); i ) {if(v[s[i]] 0)cout << s[i];v[s[…...

PowerShell 执行策略限制导致的 `npm` 命令无法运行的安全错误

PowerShell 执行策略限制导致的 npm 命令无法运行的安全错误 npm install npm : 无法加载文件 D:\Program Files\nodejs\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution…...

动态残差组改进YOLOv26双重注意力机制与残差学习深度融合

动态残差组改进YOLOv26双重注意力机制与残差学习深度融合 在目标检测领域&#xff0c;特征提取的质量直接决定了模型的检测性能。传统的残差网络虽然能够有效缓解梯度消失问题&#xff0c;但在复杂场景下往往难以自适应地关注关键特征。本文介绍一种基于动态残差组&#xff08…...

有什么找工作比较好的软件?2026实测推荐,行业TOP1太省心

有什么找工作比较好的软件&#xff1f;2026实测推荐&#xff0c;行业TOP1太省心在求职市场竞争日趋激烈的当下&#xff0c;“有什么找工作比较好的软件”成为全网高频热搜&#xff0c;无论是应届生首次求职、职场人跳槽转型&#xff0c;还是蓝领群体寻求稳定岗位&#xff0c;一…...

香港启世集团宣布启动核聚变能源研究计划

创始人夙昊玄&#xff1a;推动人类迈向清洁能源新时代 香港&#xff0c;2026年3月 —— 香港启世集团今日宣布正式启动核聚变能源研究计划&#xff0c;致力于探索未来清洁能源解决方案。集团创始人 夙昊玄 表示&#xff0c;核聚变被视为人类能源发展的终极方向之一&#xff0c…...

告别“积木式”构建:RH Claw 实现 OpenClaw AIGC全模态能力一令直达

在2026年数字员工浪潮的推动下&#xff0c;开源框架OpenClaw&#xff08;小龙虾&#xff09;已进化为构建Agent的核心底层。而智能体进化的下一步&#xff0c;必然是执行力的全维度突破。因此&#xff0c;卓越的AIGC图形音视频工作流开发和API服务平台RunningHub正式发布RHClaw…...

全球医疗器械展会代理地域适配指南:各区域优质服务商精准推荐

一、引言与地域类参展核心痛点据国际展览业协会(UFI)最新数据显示,全球展览市场规模已突破3000亿美元,其中海外医疗器械展会年增速保持在8%以上,北京嘉宇沃德展览有限公司凭借深耕垂直领域、全区域布局、专业服务积淀,成为众多医疗企业出海参展、覆盖全球多区域展会的重要合作伙…...

API接口管理系统助力企业破解数据孤岛难题

当处于数字化转型那如浪潮般势头下时&#xff0c;企业的IT架构变得一天比一天愈加复杂&#xff0c;其内部常常运行着数十个&#xff0c;甚至多达上百个&#xff0c;是源自不同厂商&#xff0c;且处于不同时期建设而成的业务系统。这些数量众多的系统之间出现的数据孤岛情况&…...

超强AI智能抠图神器 Aiarty Image Matting 实操教程(0基础入门,发丝级抠图秒出效果)

在设计创作、办公排版、电商运营、短视频制作等场景中&#xff0c;抠图是高频且繁琐的操作。传统抠图工具不仅需要专业技巧&#xff0c;面对毛发、透明物体、复杂背景等场景时&#xff0c;更是耗时费力&#xff0c;往往出现抠图不精准、边缘生硬、细节丢失等问题&#xff0c;让…...