Debezium vs OGG vs Tapdata:如何实时同步 Oracle 数据到 Kafka 消息队列?

随着信息时代的蓬勃发展,企业对实时数据处理的需求逐渐成为推动业务创新和发展的重要驱动力。在这个快速变化的环境中,许多企业选择将 Oracle 数据库同步到 Kafka,以满足日益增长的实时数据处理需求。本文将深入探讨这一趋势的背后原因,并通过一个真实的客户案例来强调实时性在业务场景中的重要性。

为什么:理解 Oracle - Kafka 的实时同步需求

先来看一个典型的业务场景。实时库存管理需要迅速响应库存变化,以确保及时的补货和订单处理。通过将 Oracle 数据同步到 Kafka,可以实现实时捕获库存变更,并将这些变更事件传递给下游业务,如订单系统、报表系统等。如此一来,企业得以更加灵活、实时地管理库存,从而提高供应链效率。

为什么要同步至 Kafka?

再结合 Oracle 以及 Kafka 的自身特性,我们不难总结出 Oracle 到 Kafka 数据同步背后的实际需求,这通常涉及到满足实时数据需求、支持大规模数据处理、构建事件驱动体系结构以及提高整体系统性能等。以下是一些常见原因总结:

  • 实时数据流:作为一个分布式消息队列系统,Kafka 能够提供高吞吐量和低延迟的实时数据处理。通过将 Oracle 数据库同步到 Kafka,可以实现对数据的实时捕获和处理,使得企业能够更快地响应数据变化。

  • 高可用性:Kafka 通过分布式来实现高可用性,一个 Kafka 集群通常包含多个 Broker,每个 Broker 负责存储一部分的数据副本,这样即使某个 Broker 出现故障,其他 Broker 也可以继续工作,从而保证服务的可用性。

  • 可扩展性:Kafka 基于其分布式架构、消费者组、分区和副本机制、水平扩展能力、高并发处理能力和容错性等方式实现了可扩展性,从而能够处理大规模的消息数据,满足高吞吐量和高并发的需求。

  • 高效查询: Kafka 凭借顺序写入、索引、二分查找和内存缓存等技术,得以高效处理大规模的消息流,并保持高性能和低延迟,从而实现高效的数据读取。

  • 高并发写入: Kafka 的设计理念注重高并发的数据写入,采用了多种技术,如零拷贝技术、批量处理、消息压缩、异步处理等,提高了数据传输的效率和处理的速度,能够处理大规模的数据流。充分利用 Kafka 的高并发写入能力,有助于业务系统处理大量的写入请求,适用于需要高吞吐量的业务,比如日志记录、事件溯源等。

  • 解耦数据生产者和消费者:Kafka 的消息队列模型有助于解耦数据生产者和消费者之间的关系,可以使数据库的变更与实际数据使用者(应用程序、分析系统等)之间形成松耦合,从而提高整个系统的灵活性。

  • 支持事件驱动架构:通过将 Oracle 数据同步到 Kafka,可以构建基于事件的架构。数据库的变更可以作为事件流式传输,触发系统中其他组件的动作,从而实现更灵活、敏捷的业务流程。

  • 数据集成: Kafka 作为中间件,能够协调不同系统之间的数据流,可以轻松实现与其他数据源和目标的集成,促使系统更好地适应复杂的数据处理和交换需求。

为什么需要实时?

与此同时,数据同步的实时性在这个过程中被不断强调,还是举几个简单的例子:

  • 实时报表和监控系统: 对于需要实时监控和报表展示的业务,如运营监控、性能监控等,及时获取数据库中的数据变更是关键。通过实时同步到 Kafka,保障这些监控系统的数据时刻处于最新状态。

  • 事件驱动架构: 许多现代应用采用事件驱动架构,通过发布-订阅模型进行系统集成。在这种情况下,实时同步数据到 Kafka 是保证事件的及时传播和处理的关键。

  • 用户体验: 在需要实时交互和响应的应用中,用户期望看到最新的数据状态。例如,在在线协作或实时通讯应用中,用户需要实时看到其他用户的操作和变更。

至此,我们已经大致了解了 Oracle 到 Kafka 数据实时同步的重要性,下面再来看一些常见的同步方案。

怎么做:数据同步方案对比

手动方案:配合开源工具

实现 Oracle 到 Kafka 数据实时同步的手动方案涉及多个步骤,包括设置 Oracle 数据库、配置 Kafka 环境,以及编写同步程序。下面是一个简单的手动方案示例,主要涉及使用 Debezium 开源工具实现 Oracle 数据库到 Kafka 的实时同步。
在这里插入图片描述
步骤一:准备工作

  1. 安装 Oracle 数据库: 确保已安装并正确配置 Oracle 数据库。
  2. 安装 Kafka: 安装 Kafka 并启动 ZooKeeper 服务,作为 Kafka 的依赖。
  3. 安装并配置 Debezium: Debezium 是一个开源的变更数据捕获工具,用于监听数据库变更并将其发送到 Kafka。下载并配置 Debezium Connector for Oracle。(https://debezium.io/)

步骤二:配置 Oracle 数据库

  1. 启用归档日志: 在 Oracle 数据库中,确保归档日志已启用,这是 Debezium 监听变更的必要条件。
sqlCopy code
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archivelog';
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='arch_%t_%s_%r.arc';
  1. 创建 CDC 用户: 创建一个专用于 Change Data Capture (CDC) 的用户,并授予必要的权限。
sqlCopy code
CREATE USER cdc_user IDENTIFIED BY cdc_password;
GRANT CONNECT, RESOURCE, CREATE VIEW TO cdc_user;
  1. 启用 CDC: 启用 Oracle 的 CDC 特性,并指定 CDC 用户。
sqlCopy code
EXEC DBMS_CDC_PUBLISH.CREATE_CHANGE_SET('MY_CHANGE_SET', 'CDC_USER');
EXEC DBMS_CDC_PUBLISH.ALTER_CHANGE_SET('MY_CHANGE_SET', 'ADD');
EXEC DBMS_CDC_PUBLISH.CREATE_CAPTURE('MY_CAPTURE', 'CDC_USER');
EXEC DBMS_CDC_PUBLISH.ALTER_CAPTURE('MY_CAPTURE', 'ADD');
EXEC DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE('MY_CHANGE_TABLE', 'CDC_USER', 'MY_CAPTURE', 'MY_CHANGE_SET');

步骤三:配置 Debezium 连接器

  1. 配置 Debezium Connector: 创建一个 JSON 配置文件,指定 Oracle 连接信息、监控的表等信息。
jsonCopy code
{"name": "oracle-connector", // 服务注册连接器时分配给连接器的名称。
"config": {"connector.class": "io.debezium.connector.oracle.OracleConnector", // Oracle连接器类的名称
           "database.server.name": "my-oracle-server", //为连接器捕获更改的 Oracle 数据库服务器标识并提供命名空间的逻辑名称
           "database.hostname": "your-oracle-host", //oracle实例地址
           "database.port": "your-oracle-port", //oracle数据库端口
           "database.user": "cdc_user", //oracle数据库用户
           "database.password":"cdc_password", //oracle数据库密码
           "database.dbname":"your-oracle-database",//要从中捕获更改的数据库的名称
           "database.out.server.name":"oracle-server", // kafka主题
           "table.include.list": "CDC_USER.MY_TABLE",//orcle中表进行数据监测输出数据
           "schema.history.internal.kafka.bootstrap.servers": "192.3.65.195:9092",//此连接器用于将 DDL 语句写入和恢复到数据库历史主题的 Kafka 代理列表
           "schema.history.internal.kafka.topic": "schema-changes.inventory" // 连接器写入和恢复 DDL 语句的数据库历史主题的名称
           }
 }
  1. 启动 Debezium Connector: 使用 Kafka Connect 启动 Debezium Connector。
bashCopy code
bin/connect-standalone.sh config/worker.properties config/debezium-connector-oracle.properties

步骤四:验证同步

  1. 插入数据: 在 Oracle 数据库中插入一些数据。
sqlCopy code
INSERT INTO CDC_USER.MY_TABLE (ID, NAME) VALUES (1, 'John Doe');
  1. 检查 Kafka 主题: 检查 Kafka 中是否有与表变更相关的消息。
bashCopy code
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-oracle-server.CDC_USER.MY_TABLE --from-beginning

此处应该能够看到与插入操作相关的 JSON 消息。

以上只是一个简单的示例,实际情况可能会更加复杂,具体的配置和操作可能取决于 Oracle 和 Debezium 版本的不同。在生产环境中,请务必遵循相关安全和最佳实践。

经典方案:配合 Oracle 官方工具 OGG

使用 Oracle GoldenGate (OGG) 实现 Oracle 到 Kafka 数据实时同步的方案同样包含多个步骤,以下是一个基本示例,以 OGG Classic Replicat 为例。请注意,具体配置仍然会因 Oracle GoldenGate 版本的不同而有所变化。
在这里插入图片描述
步骤一:准备工作

  1. 安装 Oracle GoldenGate: 安装并配置 Oracle GoldenGate 软件。
  2. 安装 Kafka: 安装 Kafka 并启动 ZooKeeper 服务,作为 Kafka 的依赖。

步骤二:配置 Oracle 数据库

  1. 启用归档日志: 确保 Oracle 数据库的归档日志已启用。
sqlCopy code
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archivelog';
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='arch_%t_%s_%r.arc';

步骤三:配置 OGG Extract 和 Pump

  1. 创建 OGG Extract: 配置 OGG Extract 用于捕获变更数据。
bashCopy code
cd $OGG_HOME
./ggsci
GGSCI> ADD EXTRACT ext1, TRANLOG, BEGIN NOW
GGSCI> ADD EXTTRAIL /trail/et, EXTRACT ext1
GGSCI> ADD EXTRACT dpump, EXTTRAILSOURCE /trail/et
GGSCI> ADD RMTTRAIL /trail/rt, EXTRACT dpump
  1. 配置 OGG Pump: 配置 OGG Pump 用于将捕获的变更数据传输到 Kafka。
bashCopy code
GGSCI> ADD EXTRACT pump1, EXTTRAILSOURCE /trail/rt, BEGIN NOW
GGSCI> ADD RMTTRAIL /trail/pt, EXTRACT pump1
GGSCI> ADD REPLICAT rep1, EXTTRAIL /trail/pt, SPECIALRUN

步骤四:配置 OGG Replicat 和 Kafka

  1. 编辑 OGG Replicat 参数文件: 编辑 Replicat 参数文件,配置连接信息和目标 Kafka 主题。
plaintextCopy code
REPLICAT rep1
USERID ogguser, PASSWORD oggpassword
ASSUMETARGETDEFS
MAP source_table, TARGET kafka_topic, COLMAP (...)
  1. 启动 OGG Replicat: 启动 Replicat 进程。
bashCopy code
./ggsci
GGSCI> START REPLICAT rep1

步骤五:验证同步

  1. 插入数据: 在 Oracle 数据库中插入一些数据。
sqlCopy code
INSERT INTO source_table (ID, NAME) VALUES (1, 'John Doe');
  1. 检查 Kafka 主题: 检查 Kafka 中是否有与表变更相关的消息。
bashCopy code
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kafka_topic --from-beginning

新一代数据实时平台工具:低成本、更简单

以 Tapdata 为例,作为中国的 “Fivetran/Airbyte”, Tapdata 是一个以低延迟数据移动为核心优势构建的现代数据平台,内置 100+ 数据连接器,拥有稳定的实时采集和传输能力、秒级响应的数据实时计算能力、稳定易用的数据实时服务能力,以及低代码可视化操作等。典型用例包括数据库到数据库的复制、将数据引入数据仓库或数据湖,以及通用 ETL 处理等。

Tapdata 是一个专注于实时数据同步的工具,拥有强大且稳定的数据管道能力,可以用来替换类似于 OGG/DSG 这样的同步工具,将数据从 Oracle 、MySQL 这样的数据库同步到同构或者异构类型的数据目标。
在这里插入图片描述
以下是详细的操作教程(演示版本为 Tapdata Cloud):

步骤一:Tapdata 安装与部署

  1. 注册并登录 Tapdata Cloud

  2. 安装并部署 Tapdata: 访问 Tapdata 官方网站,获取操作指引,完成 Tapdata Agent 的安装与部署。

注册 Tapdata Cloud,即刻开启您的实时数据之旅
申请试用 Tapdata 本地部署版本

步骤二:配置数据源和目标

  1. 新建 Oracle 数据源:进入 Tapdata Cloud 连接管理页面,创建数据源 Oracle 的连接并测试通过。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 新建数据目标 Kafka:重复上述操作,在数据源列表中找到 Kafka,参考连接配置帮助创建 Kafka 为数据目标的连接并测试通过:
    在这里插入图片描述
    步骤三:配置 Kafka

1.创建 Kafka Topic: 在 Kafka 中创建一个 Topic,用于接收从 Oracle 同步过来的数据。

bashCopy code
bin/kafka-topics.sh --create --topic my_oracle_topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

步骤四:开启同步任务

  1. 新建数据同步任务:通过拖拉拽的方式,在 Tapdata 的可视化操作界面中,连接数据源和目标,快速创建 Oracle - Kafka 的数据同步任务
  2. 启动同步任务: 点击源节点与目标节点,分别选择待同步表和目标表后即可启动任务,Tapdata 将开始捕获 Oracle 数据库的数据及变更,并将其发送到 Kafka。

步骤五:验证同步

  1. 插入数据: 在 Oracle 数据库中插入一些数据。
sqlCopy code
INSERT INTO my_table (id, name) VALUES (1, 'John Doe');
  1. 检查 Kafka Topic: 使用 Kafka 命令行工具检查同步的数据是否已经到达 Kafka Topic。
bashCopy code
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my_oracle_topic --from-beginning

如何选:综合对比,选择与自身需求更加匹配的方案

面对如此多的数据同步方案,在做调研时往往涉及多方考虑。综合来看,各个类型的方案各有优劣:

① 手动配置方案
优势:

  1. 定制性: 完全自定义的配置允许满足特定业务场景的要求。
  2. 无额外成本: 不需要额外的软件许可费用。

劣势:

  1. 复杂性: 需要手动处理所有步骤,可能会增加配置和管理的复杂性
  2. 维护难度: 对于复杂的同步需求,手动配置可能导致维护难度增加。
  3. 时间成本: 手动配置需要更多的时间和技术经验。

② 官方工具 OGG
优势:

  1. 成熟稳定: OGG 是 Oracle 提供的官方工具,经过多年的发展和改进,具有稳定性和成熟性。
  2. 可视化管理:OGG 提供了管理界面,简化了配置和监控过程。

劣势:

  1. 资金成本: 付费工具且价格较高,需要一定的成本投入。
  2. .学习成本: 具有一定的学习门槛,尤其是对于初学者而言。

③ Tapdata 方案
优势:

  1. 简化配置: Tapdata 提供了简化的配置界面,降低了配置复杂性,无论是操作还是维护都更加简单
  2. 实时监控: 提供实时监控和报警功能,方便管理和维护。
  3. 低延迟: Tapdata 强调低延迟,根据任务的 tps 对任务进行拆分,适用于对实时性要求较高的场景。
  4. 云原生:支持云版本,对云上生态融合更友好

劣势:

  1. 资金成本:Tapdata 本地部署版本,以及 Tapdata Cloud 到达一定链路数时需要支付额外费用。
  2. 资源占用:需要占用少量的数据库资源进行日志解析

考虑因素:

  • 根据需求选择: 根据具体需求和团队技能,选择适合的方案。手动配置适合对配置有深入理解的团队,OGG适合对稳定性和功能有更高要求的场景,而 Tapdata 则适用于希望快速配置和低延迟的场景。
  • 成本和效率权衡: 考虑购买费用、学习曲线和配置效率之间的权衡。
  • 生态整合: 考虑工具的生态整合,特别是与已有系统和工具的集成。

总体而言,将 Oracle 数据实时同步到 Kafka 为企业提供了更灵活、高效、实时的 数据处理和分析能力,有助于构建现代化的数据架构,适应迅速变化的业务环境。通过选择适合自身业务需求的同步方案,如 Debezium、OGG、Tapdata,并合理配置优化,企业可以更好地满足实时数据处理的需求,提升业务的竞争力和应变能力。在这其中,Tapdata 以其低延迟、易用性、可扩展性和实时监控等特点,为企业实现 Oracle 到 Kafka 的实时同步提供了可靠的解决方案。

产品优势:

  • 开箱即用与低代码可视化操作
  • 内置 100+ 数据连接器,稳定的实时采集和传输能力
  • 秒级响应的数据实时计算能力
  • 稳定易用的数据实时服务能力

【相关阅读】

  • Tapdata Connector 实用指南:云原生数仓场景之数据实时同步到 Databend
  • Tapdata Connector 实用指南:如何将 CRM 数据从 Salesforce 实时同步到 MongoDB 等其他库
  • Tapdata Connector 实用指南:实时数仓场景之数据实时同步至 ClickHouse
  • Tapdata Connector 实用指南:数据入仓场景之数据实时同步到 BigQuery

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

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

相关文章

[自研开源] MyData 数据集成之任务调度模式 v0.7

开源地址:gitee | github 详细介绍:MyData 基于 Web API 的数据集成平台 部署文档:用 Docker 部署 MyData 使用手册:MyData 使用手册 试用体验:http://demo.mydata.work 交流 Q 群:430089673 概述 本…

ArcGIS Pro、R和INVEST:三位一体的生态系统服务评估框架

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用,是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估(Millennium ecosystem assessment,MA)提出生态系统服务包括供给、调节、…

【linux】环境基础|开发工具|gcc|yum|vim|gdb|make|git

目录 ​编辑 Linux 软件包管理器 yum 软件包: 操作: 拓展:lrzsz简介 Linux开发工具 Linux编辑器-vim使用 vim 的基本概念 命令模式 插入模式 底行模式 vim 命令模式的操作指令 vim 底行模式的操作命令 Linux编译器-gcc/g使用 功能 格…

【web算法】列车车厢重排问题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

【Linux】如何使用git命令行与远程仓库建立连接(以Gitee为例)

目录 01.创建仓库 开源 初始化​编辑 设置模版 ​编辑 02.下载仓库到本地 03.提交贡献到远程仓库 01.创建仓库 首先在Gitee网站上登录你的账户,并创建一个新的仓库,输入仓库名称后就会自动生成仓库路径 开源 可以选择你的仓库是否开源。 开源仓…

SpringBoot之整合Dubbo

一、下载Dubbo-Admin并导入本地 dubbo-admin地址为:GitHub - apache/dubbo-admin: The ops and reference implementation for Apache Dubbo 官方文档:https://github.com/apache/dubbo-admin/blob/develop/README_ZH.md 注意需要安装Zookeeper(因为Dubbo使用Zookeeper作为注…

vue项目设置通过IP和localhost可同时访问

vue项目设置通过IP和localhost可同时访问 打开package.json文件 在要运行的分支下添加host,最后重新运行项目 重新运行项目 "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0",

代码随想录算法训练营 DAY 15 | 二叉树的层序遍历 226.翻转二叉树 101.对称二叉树

层序遍历 我们是用队列来保存元素。同时记录队列的大小,用来表示一层有几个节点。从而实现分层进行操作 遍历每一层(每一层遍历size次)的同时,把它的左右孩子都入队(插入队尾)(如果有的话&…

C++类和对象详解(上)

类的引入 由于内容十分之多所以类和对象我将分成三期去讲解 在C语言中,描绘一类对象的的属性时,我们会使用结构体,在结构体重定义该对象的特征,如一个学生。 struct student { char name[20]; int age; char sex[10]; //... };而…

Maven介绍

1.什么是Maven Maven是一个针对Java项目的构建和依赖管理工具。 具体来说,Maven 提供了一系列用于项目管理的功能,包括但不限于: 依赖管理:通过pom.xml文件,Maven 可以自动处理项目所需的所有依赖库,简化…

基于Vue.js和D3.js的智能停车可视化系统

引言 随着物联网技术的发展,智能停车系统正逐渐普及。前端作为用户交互的主要界面,对于提供直观、实时的停车信息至关重要。 目录 引言 一、系统设计 二、代码实现 1. 环境准备 首先,确保您的开发环境已经安装了Node.js和npm。然后&…

华为综合案例-普通WLAN全覆盖配置(2)

组网图 结果验证 在AC_1和AC_2上执行display ap all命令,检查当前AP的状态,显示以下信息表示AP上线成功。[AC_1] display ap all Total AP information: nor : normal [1] ExtraInfo : Extra information P : insufficient power supply ---…

Naocs-config配置中心知识点

1、配置中心特点 方便维护,时效性,安全性。 只要更改了配置文件,微服务可以在极短的时间内更新配置并应用。 2、配置文件命名规则 2.1DataID {spring.application.name}-{spring.profile.active}.{spring.cloud.nacos.config.file-extens…

数据仓库相关概述

数据仓库概述 数据仓库概念 数据仓库是一个为数据分析而设计的企业级数据管理系统。数据仓库可集中、整合多个信息源的大量数据,借助数据仓库的分析能力,企业可从数据中获得宝贵的信息进而改进决策。同时,随着时间的推移,数据仓…

【计算机视觉】三、图像处理——实验:图像去模糊和去噪、提取边缘特征

文章目录 0. 实验环境1. 理论基础1.1 滤波器(卷积核)1.2 PyTorch:卷积操作 2. 图像处理2.1 图像读取2.2 查看通道2.3 图像处理 3. 图像去模糊4. 图像去噪4.1 添加随机噪点4.2 图像去噪 0. 实验环境 本实验使用了PyTorch深度学习框架,相关操作…

企业工商年报注册注销商标注册异常处理小程序开源版开发

企业工商年报注册注销商标注册异常处理小程序开源版开发 1、独立业务模型包括:企业工商年报、企业工商登记注册、企业注销登记、企业异常处理。 2、通用业务模型适合各种业务,比如:商标注册代理、财务会计服务、企业版权登记登。 当然&…

基于nodejs+vue天气数据可视化平台python-flask-django-php

随着社会多元化的不断发展,天气数据问题不可被简单的理解为是科学问题,更多的是环境问题,可以直接影响到人民的日常生活,甚至对一个国家的政治经济带来影响,由此可见,天气预测是一项非常重要的行业。基于此…

C++总结

数据类型 基本的内置类型 修饰符类型 C 允许在 char、int 和 double 数据类型前放置修饰符。 修饰符是用于改变变量类型的行为的关键字,它更能满足各种情境的需求。 类型限定符 函数 以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的&am…

MacOS 电脑如何通过自带terminal终端连接PostgreSQL

1、安装Postgre SQL客户端工具 brew install postgresql 2、连接到PostgreSQL (1)创建远程连接 psql -h hostname -U username -d database 其中,hostname 是 PostgreSQL 服务器的主机名或 IP 地址,username 是您的 PostgreS…

kubesphere all in one部署Jenkins提示1 Insufficient cpu

原因 devops 至少一个cpu(1000m),但是其他资源已经占用了很多cpu CPU 资源以 CPU 单位度量。Kubernetes 中的一个 CPU 等同于: 1 个 AWS vCPU 1 个 GCP核心 1 个 Azure vCore 裸机上具有超线程能力的英特尔处理器上的 1 个超线程…