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

MySQL 迁移至 Doris 最佳实践方案

在数据架构不断演进的背景下,从 MySQL 迁移至 Doris 成为许多企业提升数据处理效率的关键选择。本文将深入剖析三种经过实践验证的 MySQL 迁移至 Doris 的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于 CDC(Change Data Capture)的实时迁移。每种方案都将从技术原理、实施步骤、适用场景、资源消耗等维度展开分析,并通过对比选型帮助读者结合自身业务需求与技术栈,找到最契合的迁移路径,实现数据平稳过渡与性能跃升。

一、JDBC Catalog 联邦查询方案(适合跨库实时查询)

1. 方案概述

通过 Doris 1.2 + 引入的JDBC Catalog功能,直接通过标准 JDBC 协议连接 MySQL 数据库,实现跨库联邦查询和数据写入。相比 ODBC,JDBC 接口更统一、兼容性更强,且无需复杂的驱动安装和版本匹配。

2. 环境要求

组件版本要求说明
Doris1.2.0+支持 JDBC Catalog 功能
MySQLMySQL 5.7, 8.0 或更高版本需开启远程访问权限
MySQL JDBC8.0.28+驱动下载:MySQL JDBC 驱动

3. 实施步骤

3.1 安装 JDBC 驱动(所有 FE/BE 节点)

步骤 1:创建驱动目录

mkdir -p /your_path/doris/jdbc_drivers 

步骤 2:上传驱动包下载 MySQL JDBC 驱动(如mysql-connector-java-8.0.31.jar),并上传至所有 FE/BE 节点的/your_path/doris/jdbc_drivers目录。

步骤 3:配置驱动路径编辑fe.confbe.conf,添加以下配置(如果你使用的是默认的路径就不需要修改这个了):

jdbc_drivers_dir = /opt/doris/jdbc_drivers 

步骤 4:重启服务

# 重启FE 
cd /opt/doris/fe 
bin/stop_fe.sh && bin/start_fe.sh --daemon 
# 重启BE 
cd /opt/doris/be 
bin/stop_be.sh && bin/start_be.sh --daemon 
3.2 创建 JDBC Catalog

使用 MySQL 客户端连接 Doris,执行以下 SQL 创建 Catalog:

CREATE CATALOG mysql PROPERTIES ("type"="jdbc","user"="root","password"="secret","jdbc_url" = "jdbc:mysql://example.net:3306","driver_url" = "mysql-connector-j-8.3.0.jar","driver_class" = "com.mysql.cj.jdbc.Driver"
)

jdbc_url:MySQL 连接地址,可指定数据库(如jdbc:mysql://host:port/dbname)。

driver_url:驱动文件名,需与/opt/doris/jdbc_drivers目录下的文件一致,默认就是/your_path/doris/jdbc_drivers

3.3 创建查询或者导入

执行联邦查询

-- 直接查询mysql表 SELECT * FROM mysql_catalog.mysql_db.user_table LIMIT 10; -- 与Doris表关联查询 
SELECT a.id, a.name, b.sales 
FROM mysql_catalog.mysql_db.user_table a 
JOIN doris_table b ON a.id = b.user_id; 

执行数据导入

-- 建表
create table as select  mysql_catalog.mysql_db.user_table-- 导入
insert into doris_table select * from mysql_catalog.mysql_db.user_table

4. 注意事项

数据类型映射
MySQL 的BIT类型映射为 Doris 的STRING,需在查询时转换(如CAST(bit_col AS BOOLEAN))。
大字段类型(如BLOB)建议通过VARCHAR映射,避免查询性能问题。

权限控制
为 Doris 创建专用 MySQL 用户,仅授予SELECT权限,避免数据泄露。
在 Doris 中通过GRANT语句限制外部表访问权限。

连接安全
如果您使用数据源上安装的全局信任证书配置了 TLS,则可以通过将参数附加到在 jdbc_url 属性中设置的 JDBC 连接字符串来启用集群和数据源之间的 TLS。

二、Binlog 实时同步方案(适合增量数据同步)

1. 方案概述

通过 Canal 解析 MySQL Binlog,实时同步增量数据至 Doris,支持 INSERT/UPDATE/DELETE 操作,适用于实时数据仓库场景。

2. 环境要求

组件版本要求说明
MySQL5.7+需开启 Binlog(ROW 模式)
Canal1.1.5+下载地址:Canal 官网
Doris1.2.0+支持 BATCH_DELETE 特性

3. 实施步骤

3.1 配置 MySQL 开启 Binlog

步骤 1:编辑 my.cnf

[mysqld] 
log-bin=mysql-bin         # 开启Binlog 
binlog-format=ROW          # 使用ROW模式 
binlog-row-image=FULL      # 记录完整行数据 
server-id=1                # 唯一服务器ID 

步骤 2:重启 MySQL 服务

sudo systemctl restart mysqld 
3.2 部署 Canal 服务

步骤 1:下载并解压

wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz tar -zxvf canal.deployer-1.1.5.tar.gz 

步骤 2:创建 Instance 配置

mkdir conf/demo 
cp conf/example/instance.properties conf/demo/ 
vim conf/demo/instance.properties 

关键配置

canal.instance.master.address=192.168.1.100:3306   # MySQL地址 
canal.instance.dbUsername=canal                  # 具有Binlog读取权限的用户 
canal.instance.dbPassword=canal                  # 用户密码 
canal.destination=demo                           # Instance名称 

步骤 3:启动 Canal

sh bin/startup.sh 
# 验证日志:cat logs/demo/demo.log,显示"start successful"表示启动成功 
3.3 在 Doris 中创建同步任务

步骤 1:创建 Doris 目标表(需开启 BATCH_DELETE)

--create Mysql table
CREATE TABLE `test.source_test` (`id` int(11) NOT NULL COMMENT "",`name` int(11) NOT NULL COMMENT ""
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;-- create Doris table
CREATE TABLE `target_test` (`id` int(11) NOT NULL COMMENT "",`name` int(11) NOT NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`id`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`id`) BUCKETS 8
PROPERTIES (
"replication_allocation" = "tag.location.default: 3"
);

步骤 2:创建同步作业

CREATE SYNC demo_job ( FROM mysql.test_table INTO target_test (id, name) 
) 
FROM BINLOG ( "type" = "canal", "canal.server.ip" = "192.168.1.101",   # Canal服务器IP "canal.server.port" = "11111",         # Canal默认端口 "canal.destination" = "demo",          # Canal Instance名称 "canal.username" = "canal", "canal.password" = "canal", "sync.mode" = "incremental"            # 增量同步模式 
); 

4. 注意事项

权限要求:需为 Canal 创建专用用户(如 canal),并授予REPLICATION SLAVE权限:

CREATE USER 'canal'@'%' IDENTIFIED BY 'canal'; 
GRANT REPLICATION SLAVE ON *.* TO 'canal'@'%'; 
FLUSH PRIVILEGES; 

数据一致性:建议在 Doris 目标表中使用UNIQUE KEY 模型,并确保 MySQL 源表与 Doris 表字段一一对应。

三、Flink CDC 流式同步方案(适合高实时性场景)

1. 方案概述

基于 Flink CDC(Change Data Capture)实时捕获 MySQL 变更数据,通过 Flink-Doris 连接器写入 Doris,支持秒级延迟,适用于实时分析、实时报表场景。

2. 环境要求

组件版本要求说明
Flink1.13+支持 Flink CDC 2.0+
Doris1.2.0+支持 Delete 操作
依赖库flink-cdc-2.1.0, flink-doris-connector-1.1.0需下载对应版本 JAR 包

3. 实施步骤

3.1 构建 Flink 作业

步骤 1:添加 Maven 依赖

<dependency><groupId>org.apache.doris</groupId><artifactId>flink-doris-connector-1.16</artifactId><version>25.1.0</version>
</dependency> 

步骤 2:编写 Flink SQL 脚本

-- enable checkpoint
SET 'execution.checkpointing.interval' = '30s';-- 创建MySQL CDC源表 
CREATE TABLE mysql_cdc_source ( id INT PRIMARY KEY NOT ENFORCED, name STRING, age INT, ts TIMESTAMP(3) METADATA FROM 'source_ts' VIRTUAL 
) WITH ( 'connector' = 'mysql-cdc', 'hostname' = '192.168.1.100', 'port' = '3306', 'username' = 'root', 'password' = 'your_mysql_password', 'database-name' = 'test', 'table-name' = 'user_table' 
); -- 创建Doris目标表 
CREATE TABLE doris_sink ( id INT, name STRING, age INT, update_time TIMESTAMP(3) 
) WITH ( 'connector' = 'doris', 'fenodes' = 'doris-fe:8030', 'table.identifier' = 'test.user_table', 'username' = 'root', 'password' = '', 'sink.properties.format' = 'json', 'sink.enable-delete' = 'true', 'sink.label-prefix' = 'flink_cdc_' 
); -- 启动数据同步 
INSERT INTO doris_sink SELECT id, name, age, ts FROM mysql_cdc_source; 
3.2 提交 Flink 作业
<FLINK_HOME>bin/flink run \-Dexecution.checkpointing.interval=10s \-Dparallelism.default=1 \-c org.apache.doris.flink.tools.cdc.CdcTools \lib/flink-doris-connector-1.16-24.0.1.jar \mysql-sync-database \--database test_db \--mysql-conf hostname=127.0.0.1 \--mysql-conf port=3306 \--mysql-conf username=root \--mysql-conf password=123456 \--mysql-conf database-name=mysql_db \--including-tables "tbl1|test.*" \--sink-conf fenodes=127.0.0.1:8030 \--sink-conf username=root \--sink-conf password=123456 \--sink-conf jdbc-url=jdbc:mysql://127.0.0.1:9030 \--sink-conf sink.label-prefix=label \--table-conf replication_num=1 

4. 注意事项

并行度优化:根据 MySQL 表数量和数据量调整 Flink 作业并行度,避免单任务压力过大。

写入机制:开启 Flink Checkpoint,Doris Flink Connector 提供了两种攒批模式,默认使用基于 Flink Checkpoint 的流式写入方式。

写入方式流式写入批量写入
触发条件依赖 Flink 的 Checkpoint,跟随 Flink 的 Checkpoint 周期写入到 Doris 中基于 Connector 内的时间阈值、数据量阈值进行周期性提交,写入到 Doris 中
一致性Exactly-OnceAt-Least-Once,基于主键模型可以保证 Exactly-Once
延迟受 Checkpoint 时间间隔限制,通常较高独立的批处理机制,灵活调整
容错与恢复与 Flink 状态恢复完全一致依赖外部去重逻辑(如 Doris 主键去重)

四、Datax 同步方案(适合全量 / 批量数据迁移)

1. 方案概述

Datax 是一款异构数据源之间数据同步工具,通过编写 JSON 格式的配置文件,实现 MySQL 与 Doris 之间的数据抽取、转换和加载(ETL)。该方案适用于全量数据迁移、定期批量数据同步场景,对实时性要求不高,但配置灵活,可自定义数据处理逻辑。

2. 环境要求

组件版本要求说明
Datax3.0+下载地址:Datax 官网
MySQL5.6+支持标准 JDBC 协议
Doris1.0+支持通过 JDBC 或 Broker 导入数据

3. 实施步骤

3.1 安装 Datax
# 下载Datax压缩包
wget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz
tar -zxvf datax.tar.gz
3.2 编写同步配置文件

创建mysql_to_doris.json文件,示例配置如下:

{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"column": [xxx],"connection": [{"jdbcUrl": ["jdbc:mysql://localhost:3306/demo"],"table": ["table_name"]}],"username": "root","password": "xxxxx","where": ""}},"writer": {"name": "doriswriter","parameter": {"loadUrl": ["127.0.0.1:8030"],"column": [xxxx],"username": "root","password": "xxxxxx","postSql": ["select count(1) from table_name"],"preSql": [],"flushInterval":30000,"connection": [{"jdbcUrl": "jdbc:mysql://127.0.0.1:9030/demo","selectedDatabase": "demo","table": ["table_name"]}],"loadProps": {"format": "json","strip_outer_array":"true","line_delimiter": "\\x02"}}}}],"setting": {"speed": {"channel": "1"}}}
}
3.3 执行同步任务
python bin/datax.py mysql_to_doris.json

4. 注意事项

数据类型映射:确保 MySQL 与 Doris 字段类型兼容,如 MySQL 的DATETIME对应 Doris 的DATETIME,避免类型转换错误。

性能调优:通过调整channel参数控制并发度,但过高的并发可能导致资源耗尽,建议根据数据库负载测试后设置。

五、方案对比与选型建议

方案适用场景复杂度资源依赖
JDBC Catalog跨库实时查询、联邦分析★★☆☆☆依赖 Doris JDBC 功能
Binlog 同步增量数据实时同步★★★☆☆需部署 Canal 及相关组件
Flink CDC 同步高实时性流式处理、复杂清洗★★★★☆依赖 Flink 集群
Datax 同步全量 / 批量数据迁移、离线同步★★★☆☆轻量级工具,独立部署

优先选择 JDBC Catalog:当需要快速验证跨库查询功能,或需要与 Doris 本地表进行关联分析时。

推荐 Binlog 同步:常规增量同步场景,兼顾实时性和部署复杂度。

选择 Flink CDC:对实时性要求高(如实时看板),或需要复杂数据清洗(通过 Flink SQL 实现)。

使用 Datax 同步:适合一次性全量迁移,或周期性批量同步历史数据。

五、数据迁移最佳实践要点

全量初始化与增量同步结合

首次迁移时,先通过DataX导入 MySQL 全量数据,再启动 Binlog 或 Flink CDC 同步增量数据,避免历史数据积压。

数据类型兼容性测试

重点验证 MySQL 的ENUMSETBIT等类型在 Doris 中的映射是否符合预期。

监控与告警体系

结合 Prometheus + Grafana 监控或者Doris Manager工具观察资源使用情况。

这份文档已涵盖多种迁移方式。若还想对某个迁移方式补充更多细节,或增加其他方面的内容,欢迎讨论。

相关文章:

MySQL 迁移至 Doris 最佳实践方案

在数据架构不断演进的背景下&#xff0c;从 MySQL 迁移至 Doris 成为许多企业提升数据处理效率的关键选择。本文将深入剖析三种经过实践验证的 MySQL 迁移至 Doris 的最佳方案&#xff0c;涵盖全量迁移、增量同步、混合迁移以及基于 CDC&#xff08;Change Data Capture&#x…...

2025长三角杯数学建模A题思路模型代码:智能手机产品设计优化与定价问题

2025长三角杯数学建模A题思路模型代码&#xff0c;详细内容见文末名片 一、问题背景 在 2025 年第五届长三角高校数学建模竞赛中&#xff0c;赛题 A 聚焦于智能手机产品设计优化与定价这一极具现实意义的问题。如今的智能手机市场&#xff0c;可谓是一片硝烟弥漫的“战场”&a…...

【hadoop】Kafka 安装部署

一、Kafka安装与配置 步骤&#xff1a; 1、使用XFTP将Kafka安装包kafka_2.12-2.8.1.tgz发送到master机器的主目录。 2、解压安装包&#xff1a; tar -zxvf ~/kafka_2.12-2.8.1.tgz 3、修改文件夹的名字&#xff0c;将其改为kafka&#xff0c;或者创建软连接也可&#xff1…...

网络安全EN18031-1,EN18031-2,EN18031-3三个标准对应的测试项目

EN18031-1,EN18031-2,EN18031-3三个标准有什么区别 ‌EN18031-1、EN18031-2和EN18031-3三个标准分别针对不同的安全要求和应用场景&#xff0c;具体区别如下‌&#xff1a; ‌EN18031-1‌&#xff1a;主要关注网络安全防护&#xff0c;特别是防止DDoS攻击和确保安全通信协议的…...

React与Docker中的MySQL进行交互

完整结构 1. 项目结构设置 首先创建项目&#xff1a; npm create vitelatest . --template react cd . npm install2. 设置Docker中的MySQL 创建docker-compose.yml文件&#xff08;与之前相同&#xff09;&#xff1a; version: 3.8 services:mysql:image: mysql:8.0conta…...

量子隧穿:PROFINET到Ethernet ip的无损耗协议转换方案转

在本季度的生产工作中&#xff0c;我们成功实现了仓储物流自动化分拣系统中的关键技术突破。我们面临的主要挑战是将采用EtherNet/IP协议的输送带控制器与PROFINET协议的上位系统进行有效通信。通过引入ethernet IP转PROFINET网关倍讯科技BX-606-EIP&#xff0c;我们实现了输送…...

W1R3S: 1.0.1靶场

W1R3S: 1.0.1 来自 <W1R3S: 1.0.1 ~ VulnHub> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182&#xff0c;靶场IP192.168.23.249 3&#xff0c;对靶机进行端口…...

pycharm中qthread中的run函数debug不上的问题

先说结论 在风和日丽的一天&#xff0c;我尝试把我mac上的代码拿到windows修改。突然遇到了个bug&#xff0c;然后想着对几个线程内部的run函数逐一debug。 结果一开线程&#xff0c;整个线程仍然继续报错&#xff0c;run函数的第一行都不停断点。甚至&#xff0c;我加了个pr…...

深度解析IP静态的工作原理,IP静态的应用场景又哪些?

一、什么是IP静态&#xff1f; 当我们谈到“IP静态”时&#xff0c;大家可能首先想到的是与“动态IP”相对的概念。确实如此&#xff0c;静态IP是一种固定分配的IP地址&#xff0c;也就是说&#xff0c;在特定时间内&#xff0c;分配给你的IP地址不会有所更改——无论你完成多…...

Electron 应用的升级机制详解

在产品分发给用户之后,进入迭代周期是不可避免的过程。开发者需要为产品增加新功能、修复Bug,并推出新版本。如何将这些更新有效地分发给用户,是产品经理和开发人员共同关注的问题。本节将从开发者的角度出发,详细介绍Electron应用的两种常见升级方式:全量升级与增量升级。…...

Java 开源报表系统全解析:免费工具、企业案例与集成实践

在企业级数据可视化与报表开发中&#xff0c;选择一款功能强大且完全免费的开源报表系统至关重要。本文深度剖析 5 款经过权威验证的免费开源 Java 报表工具&#xff0c;涵盖图表展示、定制化及第三方集成能力&#xff0c;附企业级案例与技术实践&#xff0c;助您高效选型。 一…...

[原创](现代Delphi 12指南):[macOS 64bit App开发]: 注意“回车换行“的跨平台使用.

[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...

分类预测 | Matlab实现ABC-Transformer人工蜂群算法优化编码器多特征分类预测/故障诊断Matlab实现

分类预测 | Matlab实现ABC-Transformer人工蜂群算法优化编码器多特征分类预测/故障诊断Matlab实现 目录 分类预测 | Matlab实现ABC-Transformer人工蜂群算法优化编码器多特征分类预测/故障诊断Matlab实现分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现ABC-…...

Java中的设计模式

一、工厂方法模式 1.1 简单工厂模式 1.1.1 案例引入 比方说我们要设计一个披萨店的点单程序&#xff0c;披萨店有水果披萨&#xff0c;有芝士披萨&#xff0c;两种类型&#xff0c;选择哪个披萨&#xff0c;只需要创建那个类型的披萨对象即可。 package org.example;import…...

NSSCTF [GFCTF 2021]where_is_shell

889.[GFCTF 2021]where_is_shell(system($0)64位) [GFCTF 2021]where_is_shell (1) 1.准备 motalymotaly-VMware-Virtual-Platform:~$ file shell shell: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.s…...

有关知名分析品牌默克Supelco®的前世今生

因在仪器设备和实验室产品方面的卓越贡献&#xff0c;Supelco品牌的创立者Nicholas Pelick与Walter Supina获颁2019年匹兹堡文化遗产奖&#xff08;2019 Heritage Award&#xff09;&#xff0c;入选匹兹堡名人堂&#xff08;Pittcon Hall of Fame&#xff09;。 目前&#xff…...

钉钉数据与金蝶云星空的无缝集成解决方案

钉钉数据与金蝶云星空的无缝集成解决方案 钉钉数据集成到金蝶云星空的技术案例分享 在企业信息化建设中&#xff0c;数据的高效流动和准确对接是业务成功的关键。本文将分享一个具体的系统对接集成案例&#xff1a;如何通过transfer-新转账单&#xff08;银行转账&#xff09;…...

商业架构 2.0 时代:ZKmall开源商城前瞻性设计如何让 B2B2C 平台领先同行 10 年?

在数字化转型加速的今天&#xff0c;传统 B2B2C 平台面临用户体验割裂、数据孤岛严重、业务扩展困难等挑战。ZKmall 开源商城通过 “业务中台 数据中台 技术中台”的三位一体架构设计&#xff0c;结合“插件化扩展 分布式服务 智能决策”*三大核心能力&#xff0c;构建起具…...

Android开发-使用内容组件获取通讯信息

在Android开发中&#xff0c;访问和处理用户的通讯信息&#xff08;如联系人、通话记录等&#xff09;是一项常见的需求。通过使用Android的内容提供者&#xff08;ContentProvider&#xff09;&#xff0c;开发者可以方便地查询这些数据&#xff0c;并将其集成到自己的应用中。…...

Elasticsearch 分片机制高频面试题(含参考答案)

&#x1f9e0; Elasticsearch 分片机制高频面试题&#xff08;含参考答案&#xff09; 本篇聚焦 分片机制&#xff08;Shard&#xff09;&#xff0c;涵盖基础概念、实践经验、问题排查与场景设计&#xff0c;适合中高级开发工程师及架构师面试复习使用。 &#x1f4da; 目录 …...

从代码学习深度学习 - 风格迁移 PyTorch版

文章目录 前言方法 (Methodology)阅读内容和风格图像预处理和后处理抽取图像特征定义损失函数内容损失 (Content Loss)风格损失 (Style Loss)全变分损失 (Total Variation Loss)总损失函数初始化合成图像训练模型总结前言 大家好!欢迎来到我们的深度学习代码学习系列。今天,…...

模糊综合评价模型建立

模糊综合评价模型建立 一、整体流程 二、代码实现(含大量注释) #程序文件ex14_4.py import numpy as npa np.loadtxt(data14_4.txt) # 使用定义匿名函数的形式来定义各个评价指标的隶属函数 f1 lambda x: x/8800 f2 lambda x: 1-x/8000 f3 lambda x: (x<5.5)(8-x)/(8-…...

WooCommerce短代码Shortcodes使用方法

什么是简码? 你可能以前听说过这个词&#xff0c;但可能认为它只是一个技术概念&#xff0c;一般的WordPress用户不需要了解。 或者&#xff0c;也许你以前也用过一两个短码&#xff0c;但并不完全掌握它们在更深层次上是如何工作的。 无论怎样&#xff0c;如果你想释放WooC…...

讯联云库项目开发日志(二)AOP参数拦截

目录 利用AOP实现参数拦截: 一、​​HTTP请求进入Controller​&#xff08;发送邮件验证码&#xff09; 二、AOP切面触发 1. 切面拦截&#xff08;GlobalOperactionAspect.class&#xff09; method.getAnnotation()​​ null interceptor 判断​​ 2.参数校验注解 3. 参…...

自学嵌入式 day 18 - 数据结构 1

数据结构 相互之间存在一种或多种特定关系的数据元素的集合 1.特定关系&#xff1a; &#xff08;1&#xff09;逻辑结构&#xff1a; ①集合&#xff1a;所有在同一个集合中&#xff0c;关系平等。 ②线性关系&#xff1a;数据和数据之间是一对一的关系。&#xff08;数组…...

使用WebSocket实现跨多个服务器传输音频及实时语音识别

下面我的项目信息&#xff1a; 项目架构&#xff1a; A项目&#xff08;Websocket客户端 / React前端&#xff09; > B项目&#xff08;Websocket客户端 / Java后端&#xff09;》C项目&#xff08;Websocket服务端 / Node.js 后端&#xff09; 项目功能&#xff1a; A项目…...

C++ QT图片查看器

private:QList<QString> fs;int i;void MainWindow::on_btnSlt_clicked() {QStringList files QFileDialog::getOpenFileNames(this,"选择图片",".","Images(*.png *.jpg *.bmp)");qDebug()<<files;ui->picList->clear();ui-…...

从AlphaGo到ChatGPT:AI技术如何一步步改变世界?

从AlphaGo到ChatGPT&#xff1a;AI技术如何一步步改变世界&#xff1f; 这里给大家分享一个人工智能学习网站。点击跳转到网站。 https://www.captainbed.cn/ccc 前言 在科技发展的历史长河中&#xff0c;人工智能&#xff08;AI&#xff09;技术无疑是最为璀璨的明珠之一。从…...

跨系统数据烟囱如何破局?豪森智源HSMES重构制造协同新范式‌

‌行业困局&#xff1a;万亿级数据资产沉睡在孤岛中‌ IDC最新报告显示&#xff0c;中国86%的制造企业存在5套以上独立信息系统&#xff0c;设备联网率不足42%的工厂每年因数据断点损失超千万利润。某新能源龙头企业CTO坦言&#xff1a;"ERP、MES、WMS系统各自为政&#…...

MySQL DBA数据运维管理经验分享:新手入门快速提升效率的新工具与技巧

MySQL DBA数据运维管理经验分享:新手入门快速提升效率的新工具与技巧 前言 作为一名数据库管理员(DBA),MySQL的运维管理是我们日常工作的核心。随着技术的不断发展,MySQL运维工具和最佳实践也在不断演进。本文将分享一些实用的MySQL DBA运维经验,并对比分析当前流行的运维…...

通义千问-langchain使用构建(二)

目录 序言xinference应用构建构建过程简单概述成效 chatchat应用构建过程成效 总结 序言 在昨天的使用langchain的基础上。又尝试了构建智能问答应用。 使用langchain chatchat这个开源包&#xff0c;构建了一下智能问答系统。 前置项&#xff0c;是使用了一下xinference框架&…...

无人机动力系统全解析:核心组件、工作原理与实用指南

无人机想要实现稳定飞行与灵活操控&#xff0c;离不开一套高效协同的动力系统。该系统以电机、电子调速器&#xff08;电调&#xff09;、电池和螺旋桨四大核心组件为基础&#xff0c;各部分精密配合&#xff0c;共同驱动无人机翱翔蓝天。接下来&#xff0c;本文将从基础原理入…...

【系统架构师】2025论文《WEB系统性能优化技术》

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文分享【系统架构师】2025论文《系统可靠性设计》&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目录 项目介绍背景介绍系统模块技术栈性能…...

华为Watch的ECG功能技术分析

华为Watch的ECG&#xff08;心电图&#xff09;功能通过硬件传感器、算法优化和医疗认证的结合&#xff0c;实现了对心脏电活动的监测和房颤&#xff08;AFib&#xff09;等心律失常的预警。以下是其技术实现方案的详细解析&#xff1a; 1. 硬件设计&#xff1a;单导联ECG传感…...

2025.05.14华为机考笔试题-第二题-200分

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 02. 探险家的最佳路径 问题描述 A先生是一位探险家,他需要穿越一片危险的山地区域。这个区域可以用一个 k k k \times k...

FTP 工具 vs. 命令行 SCP/RSYNC

&#x1f539; FTP 工具 vs. 命令行 SCP/RSYNC 对比 场景FTP/SFTP 工具&#xff08;如 Cyberduck、FileZilla&#xff09;命令行&#xff08;scp/rsync&#xff09;适用人群新手、喜欢图形化操作习惯命令行、需要自动化脚本传输少量文件✅ 拖拽即可上传下载⚠️ 需手动输入命令…...

工业HMI触摸屏技术方案:基于EFISH-SCB-RK3588/SAIL-RK3588的国产化替代赛扬N100/N150全场景技术解析

一、核心硬件选型与国产化替代优势‌ ‌1. 算力与架构突破‌ ‌异构八核CPU‌&#xff1a;采用4Cortex-A76&#xff08;2.4GHz&#xff09;4Cortex-A55&#xff08;1.8GHz&#xff09;架构&#xff0c;支持实时控制逻辑、高帧率UI渲染、协议解析多任务并行处理&#xff0c;相…...

MySQL主从复制与读写分离

一、MySQL主从复制&#xff08;Replication&#xff09; 1. 核心原理 主库&#xff08;Master&#xff09;&#xff1a;处理写操作&#xff0c;并将数据变更记录到二进制日志&#xff08;Binary Log, binlog&#xff09;。 从库&#xff08;Slave&#xff09;&#xff1a;通过…...

VMware虚拟机 安装 CentOS 7

原文链接: VMware虚拟机 安装 CentOS 7 安装准备 软件: VMware Workstation Pro 17.6.3 镜像: CentOS-7.0-1406-x86_64-DVD.iso 我打包好放这了&#xff0c;VMware 和 CentOS7 &#xff0c;下载即可。 关于VMware Workstation Pro 17.6.3&#xff0c;傻瓜式安装即可。 CentO…...

.NET 8 kestrel 配置PEM,实现内网https

一、生成证书 mkcert 是一个简单的工具&#xff0c;用于制作本地信任的开发证书。它不需要配置。 mkcert官方仓库地址&#xff1a;GitHub - FiloSottile/mkcert: A simple zero-config tool to make locally trusted development certificates with any names youd like. 简…...

ERP系统如何做好工厂生产管理?4种ERP先进生产管理模式分享!

现代企业先进的生产管理方式有哪些&#xff1f;相信很多被生产效率问题困扰、谋求转型的企业都思考过这个问题。 放在以前&#xff0c;工厂靠老师傅经验、主管“凭感觉”安排生产&#xff0c;材料、设备、交期全靠人盯。那是因为20年前市场稳定&#xff0c;这套办法还行得通。…...

HttpServletRequest常用功能简介-笔记

javax.servlet.http.HttpServletRequest 是 ServletRequest 接口的子接口&#xff0c;专用于处理 HTTP 协议相关的请求。它提供了访问请求行、请求头、请求参数以及请求属性等方法。 1.请求行&#xff08;Request Line&#xff09; ✅ 功能说明 请求行包含客户端发送的 HTTP …...

基于面向对象设计的C++日期推算引擎:精准高效的时间运算实现与运算重载工程化实践

前引&#xff1a; 在软件开发中&#xff0c;时间与日期的处理是基础但极具挑战性的任务。传统的手工日期运算逻辑往往面临闰年规则、月份天数动态变化、时区转换等复杂场景的容错难题&#xff0c;且代码冗余度高、可维护性差。本文将深入探讨如何利用C的面向对象特性与成员函数…...

记一次bug排查(.exe链接mysql失败)-每天学习一点点

哎! 从来没有接手过的项目, .exe项目, 链接服务器失败 报错:"unable to connect to any of the specified mySQL hosts" 虽然不懂c的代码, 也没法反编译.exe项目, 还是像挑战尝试一下解决这个问题. 明面看就是链接mysql失败. 但是mysql对应的服务器地址是啥呢? …...

U盘启动CentOS安装与网卡驱动修复指南

遇到CentOS安装找不到盘符如何解决 1、进入安装页面&#xff0c;点击e进入修改 2、找到自己的U盘&#xff0c;修改完成后按下"ctrlx"执行继续后续安装 vmlinuz initrdinitrd.imginst.stage2hd:LABEL... quiet 改为&#xff08;具体的U盘启动需要根据实际情况进行查找…...

【物联网】基于树莓派的物联网开发【3】——最新镜像下载和烧录

使用场景 程序猫将带领大家全面了解树莓派&#xff0c;包括从0到1组装&#xff0c;散热片、外壳、风扇安装&#xff0c;官网最新镜像下载及烧录等一系列操作&#xff01; 树莓派必备配件 1、TF卡&#xff08;SD内存卡&#xff09;品牌闪迪&#xff1a;16G以上 2、type-c充电…...

K8S Gateway API 快速开始、胎教级教程

假设有如下三个节点的 K8S 集群&#xff1a; ​​ k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、Gateway 是什么 背景和目的 入口&#xff08;Ingress&#xff09;目前已停止更新。新的功能正在集成至网关 API 中。在 Kubernetes …...

js关于number类型的计算问题

js中关于number类型的计算 因&#xff1a;在js中&#xff0c;number类型是用于表示数值的基本类型&#xff0c;它遵循 IEEE 754 双精度浮点数&#xff08;64 位&#xff09;标准。这导致在某些计算中可能出现精度问题。 例&#xff1a;console.log(0.1 0.2); // 0.300000000…...

GPT-4o 遇强敌?英伟达 Eagle 2.5 视觉 AI 王者登场

前言&#xff1a; 在人工智能领域&#xff0c;视觉语言模型的竞争愈发激烈。GPT-4o 一直是该领域的佼佼者&#xff0c;但英伟达的 Eagle 2.5 横空出世&#xff0c;凭借其 80 亿参数的精简架构&#xff0c;在长上下文多模态任务中表现出色&#xff0c;尤其是在视频和高分辨率图像…...

2025最新ChatGPT Plus令牌(Token)限制完全指南:每日/每月用量详解与突破方法

2025最新ChatGPT Plus令牌(Token)限制完全解析&#xff1a;真相、误区与突破方案 对于支付$20/月订阅费的ChatGPT Plus用户来说&#xff0c;"我的ChatGPT Plus每月有多少token限制&#xff1f;"是一个普遍关心却常被误解的问题。随着越来越多人依赖AI工作和学习&…...