保姆級Debezium抽取SQL Server同步kafka

前言:

Debezium SQL Server連接器捕獲SQL Server數據庫模式中發生的行級更改。

官方2.0文檔:

Debezium connector for SQL Server :: Debezium Documentation

有關與此連接器兼容的SQL Server版本的信息,請參閱

SQL Server

Database: 2017, 2019


?

JDBC Driver: 10.2.1.jre8


?

Database: 2017, 2019


?

JDBC Driver: 9.4.1.jre8

Debezium SQL Server連接器首次連接到SQL Server數據庫或集群時,它會對數據庫中的模式進行一致的快照。初始快照完成后,連接器會連續捕獲提交到CDC啟用的SQL Server數據庫的INSERT、UPDATE或DELETE操作的行級更改。該連接器為每個數據更改操作生成事件,并將其流式傳輸到Kafka主題。該連接器將表的所有事件流式傳輸到一個專門的Kafka主題。然后,應用程序和服務可以消耗該主題的數據更改事件記錄。

要使Debezium SQL Server連接器捕獲數據庫操作的更改事件記錄,您必須首先在SQL Server數據庫上啟用更改數據捕獲。必須在數據庫和要捕獲的每個表上啟用CDC。在源數據庫上設置CDC后,連接器可以捕獲數據庫中發生的行級INSERT、UPDATE和DELETE操作。該連接器將每個源表的事件記錄寫入專門用于該表的Kafka主題。每個捕獲的表都有一個主題。客戶端應用程序讀取他們遵循的數據庫表的Kafka主題,并可以響應他們從這些主題中消耗的行級事件。

連接器首次連接到SQL Server數據庫或集群時,它需要對其配置為捕獲更改的所有表的模式進行一致的快照,并將此狀態流式傳輸到Kafka。快照完成后,連接器會持續捕獲隨后發生的行級更改。通過首先建立所有數據的一致視圖,連接器可以繼續讀取,而不會丟失快照發生時所做的任何更改。

Debezium SQL Server連接器可以容忍故障。當連接器讀取更改并生成事件時,它會定期記錄事件在數據庫日志中的位置(LSN/日志序列號)。如果連接器因任何原因(包括通信故障、網絡問題或崩潰)而停止,則在重新啟動后,連接器將從讀取的最后一點恢復讀取SQL Server CDC表。

抵消定期提交。它們不是在更改事件發生時提交的。因此,在中斷后,可能會生成重復的事件。

容錯也適用于快照。也就是說,如果連接器在快照期間停止,則連接器在重新啟動時開始新的快照。


?

安裝sqlserver linux

1,環境centos7.2以上,2 GB+ 的內存

2,rpm安裝包下載:Index of /rhel/7/mssql-server-2017/

3,下載并上傳到linux環境下

wget https://packages.microsoft.com/rhel/7/mssql-server-2017/mssql-server-14.0.1000.169-2.x86_64.rpm 
rpm -ivh mssql-server-14.0.1000.169-2.x86_64.rpm

提示缺少依賴包 把包補上

rpm -ivh繼續安裝,根據提示執行sudo /opt/mssql/bin/mssql-conf setup

[root@node01 opt]# sudo /opt/mssql/bin/mssql-conf setup 
選擇 SQL Server 的一個版本: 1) Evaluation (免費,無生產許可,180 天限制) 2) Developer (免費,無生產許可) 3) Express (免費) 4) Web (付費版) 5) Standard (付費版) 6) Enterprise (付費版) 7) Enterprise Core (付費版) 8) 我通過零售渠道購買了許可證并具有要輸入的產品密鑰。 可在以下位置找到有關版本的詳細信息: 
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x804 使用此軟件的付費版本需要通過以下途徑獲取單獨授權 
Microsoft 批量許可計劃。 
選擇付費版本即表示你具有適用的 
要安裝和運行此軟件的就地許可證數量。 輸入版本(1-8):1 
可以在以下位置找到此產品的許可條款: 
/usr/share/doc/mssql-server 或從以下位置下載: 
https://go.microsoft.com/fwlink/?LinkId=855864&clcid=0x804 可以從以下位置查看隱私聲明: 
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x804 接受此許可條款嗎? [Yes/No]:yes 選擇 SQL Server 的語言: 
(1) English 
(2) Deutsch 
(3) Espa?ol 
(4) Fran?ais 
(5) Italiano 
(6) 日本語 
(7) ??? 
(8) Português 
(9) Русский 
(10) 中文 – 簡體 
(11) 中文 (繁體) 
輸入選項 1-11:10 
輸入 SQL Server 系統管理員密碼:DTstack@123 
確認 SQL Server 系統管理員密碼:DTstack@123 
正在配置 SQL Server… 
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service. 
安裝程序已成功完成。SQL Server 正在啟動。 
[root@node01 opt]#

驗證是否啟動

systemctl status mssql-server

安裝 SQL Server 命令行工具

若要創建數據庫,需要使用一個能夠在 SQL Server 上運行 Transact-SQL 語句的工具進行連接。 以下步驟安裝 SQL Server 命令行工具: sqlcmd和bcp。

下載 Microsoft Red Hat 存儲庫配置文件。 
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo 
————— 
運行以下命令以安裝 mssql-tools 和 unixODBC 開發人員包。 
sudo yum install -y mssql-tools unixODBC-devel 
為方便起見,請將 /opt/mssql-tools/bin/ 添加到 PATH 環境變量。 這樣就可以在運行工具時不指定完整路徑。 請運行以下命令,以便修改登錄會話和交互/非登錄會話的 PATH: 
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile 
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc 
source ~/.bashrc

SQLServer基本命令

本地連接

以下步驟使用 sqlcmd 本地連接到新的 SQL Server 實例。

使用 SQL Server 名稱 (-S),用戶名 (-U) 和密碼 (-P) 的參數運行 sqlcmd。 在本教程中,用戶進行本地連接,因此服務器名稱為 localhost。 用戶名為 SA,密碼是在安裝過程中為 SA 帳戶提供的密碼。

sqlcmd -S localhost -U SA -P 密碼 # 用命令行連接

如果成功,應會顯示 sqlcmd 命令提示符:1>。

提示 可以在命令行上省略密碼,以收到密碼輸入提示。 如果以后決定進行遠程連接,請指定 -S 參數的計算機名稱或 IP 地址,并確保防火墻上的端口 1433 已打開。

SQLServer基本命令

(1) 建庫

> create database TestDB 
> go

(2) 看當前數據庫列表

> select * from SysDatabases 
> go

(3) 看當前數據表

> use 庫名 
> select * from sysobjects where xtype='u' 
> go

(4) 看表的內容

> select * from 表名; 
> go

插入數據

接下來創建一個新表 mgmg,然后插入兩個新行。

在 sqlcmd 命令提示符中,將上下文切換到新的 TestDB 數據庫: 
USE TestDB

創建名為 mgmg 的新表:

CREATE TABLE mgmg (id INT, name NVARCHAR(50), quantity INT)

將數據插入新表:

INSERT INTO mgmg VALUES (1, 'banana', 150); INSERT INTO mgmg VALUES (2, 'orange', 154);

要執行上述命令的類型 GO:

GO

在 SQL Server 數據庫上啟用 CDC


?

在為表啟用 CDC 之前,您必須為 SQL Server 數據庫啟用它。 SQL Server 管理員通過運行系統存儲過程來啟用 CDC。系統存儲過程可以使用 SQL Server Management Studio 或 Transact-SQL 運行。

先決條件

您是 SQL Server 的 sysadmin 固定服務器角色的成員。

您是數據庫的 db_owner。

SQL Server 代理正在運行。

注意:

SQL Server CDC 功能僅處理用戶創建的表中發生的更改。您不能在 SQL Server 主數據庫上啟用 CDC。

程序

1.從 SQL Server Management Studio 的“查看”菜單中,單擊“模板資源管理器”。

2.在模板瀏覽器中,展開 SQL Server 模板。

3.展開更改數據捕獲 > 配置,然后單擊為 CDC 啟用數據庫。

4.在模板中,將 USE 語句中的數據庫名稱替換為要為 CDC 啟用的數據庫名稱。

5.運行存儲過程 sys.sp_cdc_enable_db 為 CDC 啟用數據庫。

為 CDC 啟用數據庫后,將創建名為 cdc 的模式,以及 CDC 用戶、元數據表和其他系統對象。

以下示例顯示如何為

數據庫 TestDB 啟用 CDC:

USE TestDB 
GO 
EXEC sys.sp_cdc_enable_db 
GO

在 SQL Server 表上啟用 CDC

SQL Server 管理員必須在您希望 Debezium 捕獲的源表上啟用更改數據捕獲。數據庫必須已為 CDC 啟用。要在表上啟用 CDC,SQL Server 管理員為該表運行存儲過程 sys.sp_cdc_enable_table。存儲過程可以使用 SQL Server Management Studio 或 Transact-SQL 運行。必須為要捕獲的每個表啟用 SQL Server CDC。

先決條件:

CDC 在 SQL Server 數據庫上啟用。

SQL Server 代理正在運行。

您是數據庫的 db_owner 固定數據庫角色的成員。

程序

從 SQL Server Management Studio 的“查看”菜單中,單擊“模板資源管理器”。

在模板瀏覽器中,展開 SQL Server 模板。

展開更改數據捕獲 > 配置,然后單擊啟用表指定文件組選項。

在模板中,將 USE 語句中的表名替換為您要捕獲的表名。

運行存儲過程 sys.sp_cdc_enable_table。

以下示例顯示如何為表 mgmg 啟用 CDC:

示例:為 SQL Server 表啟用 CDC

USE TestDB 
GO EXEC sys.sp_cdc_enable_table 
@source_schema = N'dbo', 
@source_name   = N'mgmg', 
@role_name     = N'NULL',   
@filegroup_name = N'MyDB_CT', 
@supports_net_changes = 0 
GO


?

示例

USE MyDB 
GO EXEC sys.sp_cdc_enable_table 
@source_schema = N'dbo', 
@source_name   = N'MyTable', 
@role_name     = N'MyRole',   
@filegroup_name = N'MyDB_CT', 
@supports_net_changes = 0 
GO

指定要捕獲的表的名稱。

指定角色 MyRole,您可以向該角色添加要授予對源表的捕獲列的 SELECT 權限的用戶。具有 sysadmin 或 db_owner 角色的用戶還可以訪問指定的更改表。將 @role_name 的值設置為 NULL,以僅允許 sysadmin 或 db_owner 中的成員對捕獲的信息具有完全訪問權限。

指定 SQL Server 為捕獲的表放置更改表的文件組。命名的文件組必須已經存在。最好不要將更改表放在用于源表的同一文件組中。

Ps文件組

1. 如何查看數據庫中所有的文件組。 語法:sp_helpfilegroup 步驟: use 數據庫 sp_helpfilegroup 
2. 如何找到文件組和文件的對應情況. sp_helpdb love 創建文件組。 
語法: alter database 數據庫名 add filegroup 文件組名 
步驟: use 數據庫名 alter database  數據庫名  add filegroup 文件組名 
范例: 
use love 
alter database TestDB add filegroup 財務部


?

SQL Server 管理員可以運行系統存儲過程來查詢數據庫或表以檢索其 CDC 配置信息。存儲過程可以使用 SQL Server Management Studio 或 Transact-SQL 運行。

先決條件

您對捕獲實例的所有捕獲列具有 SELECT 權限。 db_owner 數據庫角色的成員可以查看所有已定義捕獲實例的信息。

您擁有為查詢包括的表信息定義的任何門控角色的成員資格。

程序

從 SQL Server Management Studio 的“查看”菜單中,單擊“對象資源管理器”。

在對象資源管理器中,展開數據庫,然后展開您的數據庫對象,例如 MyDB。

展開可編程性 > 存儲過程 > 系統存儲過程。

運行 sys.sp_cdc_help_change_data_capture 存儲過程來查詢表。

查詢不應返回空結果。

以下示例在數據庫 TestDB 上運行存儲過程 sys.sp_cdc_help_change_data_capture:

示例:

查詢表以獲取 CDC 配置信息

USE TestDB; 
GO 
EXEC sys.sp_cdc_help_change_data_capture 
GO

該查詢返回數據庫中每個表的配置信息,這些表為 CDC 啟用并且包含調用者有權訪問的更改數據。如果結果為空,請驗證用戶是否具有訪問捕獲實例和 CDC 表的權限。

部署Debezium SQL Server連接器

要部署Debezium SQL Server連接器,請安裝Debezium SQL Server連接器存檔,配置連接器,并通過將其配置添加到Kafka Connect來啟動連接器。

先決條件

安裝了Apache ZooKeeper、Apache Kafka和Kafka Connect。

SQL Server已安裝,已配置為CDC,并準備與Debezium連接器一起使用。

程序

下載Debezium SQL Server連接器插件存檔

Wget https://repo1.maven.org/maven2/io/debezium/debezium-connector-sqlserver/1.9.7.Final/debezium-connector-sqlserver-1.9.7.Final-plugin.tar.gz

將文件提取到您的Kafka Connect環境中。

將帶有JAR文件的目錄添加到Kafka Connect的plugin.path中。

配置連接器并將配置添加到您的Kafka Connect集群中。

重新啟動您的Kafka Connect流程以提取新的JAR文件。

解壓插件包

tar -xvf debezium-connector-sqlserver-1.9.7.Final-plugin.tar.gz

配置kafka,讓kafka知道這個插件.

[root@hhz02 config]# vi connect-distributed.properties

配置注意項:(單機模式啟動連接器 connect-standlone.properties)

bootstrap.servers=172.16.120.17:9092
offset.storage.topic=connect-sqlserver-status
offset.storage.replication.factor=1
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
status.storage.topic=connect-sqlserver-statu
status.storage.replication.factor=1
config.storage.topic=connect-sqlserver-config
config.storage.replication.factor=1
group.id=connect-sqlserver
offset.flush.interval.ms=10000
plugin.path=/opt/debezium-connector-sqlserver
rest.port=8083

Ps:
如果kafka開啟kerberos 該配置文件還需要添加:
security.protocol=SASL_PLAINTEXT
sasl.kerberos.service.name=kafka還需要再啟動腳本connect-distributed.sh中添加:
export KAFKA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=/opt/dtstack/Kafka/kafka/config/kafka_jaas.conf"

注意:集群模式kafka 需要注意配置分發。

重啟kafka集群使配置生效。

啟動Kafka connector

/opt/dtstack/DTBase/kafka/bin/connect-distributed.sh -daemon /opt/dtstack/DTBase/kafka/config/connect-sqlserver.properties

注意結尾這個文件 集群模式為:connect-distributed.properties,單機模式為:connect-standalone.properties

(如果啟動有問題 觀察/opt/app/kafka/logs/connectDistributed.out)

檢測Kafka connector是否正常工作

1. 檢測kafka連接器的服務狀態

[root@node01 logs]# curl -H "Accept:application/json" node01:8083/ 
{"version":"1.1.1","commit":"8e07427ffb493498","kafka_cluster_id":"svXhhAFkSt6xLRPTBIdE1Q"}

2. 檢查向 Kafka Connect 注冊的連接器列表

[root@hdp01 kafka]# curl -H "Accept:application/json" node01:8083/connectors/ 
[]

返回空列表, 表示目前還沒有注冊的連接器

附:刪除命令

curl -X DELETE node01:8083/connectors/db2-connector1

SQL Server 連接器配置示例

以下是連接器實例的配置示例,該實例在 172.16.120.17 的端口 1433 上從 SQL Server 服務器捕獲數據,我們在邏輯上將其命名為 fullfillment。通常,您通過設置可用于連接器的配置屬性,在 JSON 文件中配置 Debezium SQL Server 連接器。

注冊連接器

Kafka Connect 服務的 API 提交POST針對/connectors資源的請求,其中包含描述新連接器(稱為inventory-connector)的 JSON 文檔。

curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" node01:8083/connectors/ -d '{ "name": "inventory-connector", "config": { "connector.class": "io.debezium.connector.sqlserver.SqlServerConnector", "database.hostname": "172.16.120.17", "database.port": "1433", "database.user": "SA", "database.password": "Dtstack@123", "database.dbname": "TestDB", "database.server.name": "fullfillment", "table.include.list": "dbo.mgmg", "database.history.kafka.bootstrap.servers": "node01:9092", "database.history.kafka.topic": "dbhistory.fullfillment" } 
}'

(如果注冊有問題 觀察/opt/app/kafka/logs/connectDistributed.out)

多看下日志 日志中都可以 寫到 如果注冊成功,也沒有kafka數據 麻煩看下日志WARN中過濾問題。[sourceTableId=DB2INST1.TESTTB, changeTableId=ASNCDC.CDC_DB2INST1_TESTTB

]


?


?

查看kafka中的數據

/opt/dtstack/DTBase/kafka/bin/kafka-topics.sh -list -zookeeper localhost:2181/kafka 
/opt/dtstack/DTBase/kafka/bin/kafka-console-consumer.sh --bootstrap-server node01:9092 --from-beginning --topic fullfillment.dbo.mgmg


?


?


?


?


?


?


?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94004.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94004.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94004.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙安卓前端中加載丟幀:ArkWeb分析

序章:卡頓的數字世界 在每秒60幀的視覺交響樂中,每一幀都是精心編排的節拍。當這些節拍開始丟失——就像交響樂中突然靜音的提琴部——我們便遭遇了加載丟幀的數字噩夢。這不是簡單的性能下降,而是一場渲染管線的全面崩潰,是數字…

Spring Cloud Netflix學習筆記06-Zuul

文章目錄概述什么是Zuul?Zuul 能干嘛?Zuul入門案例pom依賴application.yml啟動類隱藏真實路徑概述 什么是Zuul? Zuul包含了對請求的路由(用來跳轉的)和過濾兩個最主要功能: 其中路由功能負責將外部請求轉發到具體的微服務實例上,是實現外…

c# 和 c++ 怎樣結合

c# 和 c 怎樣結合在軟件開發中,C# 和 C 通常用于不同的場景和目的,但有時需要將它們結合使用以充分利用兩種語言的優點。以下是幾種常見的方法來實現 C# 和 C 的結合:1. P/Invoke(Platform Invocation Services)P/Invo…

開源分布式數據庫(Dgraph)

Dgraph 是一款專為處理復雜關系數據設計的開源分布式圖數據庫,核心目標是提供高性能、高可擴展性的圖數據存儲與查詢能力。其設計融合了原生圖模型與分布式架構,支持 GraphQL 查詢語言,適用于社交網絡、知識圖譜、推薦系統等場景。 一、技術架…

Apache ShenYu和Nacos之間的通信原理

這是一個非常經典的服務注冊發現和動態配置管理的案例。ShenYu 作為網關,需要實時感知后端微服務的上線、下線以及其元數據信息(如 API 接口列表)的變化,同時它自身的配置也可能需要動態調整。Nacos 則作為注冊中心和配置中心,扮演了“服務電話簿”和“動態配置倉庫”的角…

強制重啟導致Ubuntu24.04LTS amd的WIFI無法使用的解決方案

強制重啟導致Ubuntu24.04LTS amd的WIFI無法使用的解決方案 前言 ? 我按下了<ctrl><alt><prtsc>組合鍵&#xff0c;然后按住<ctrl><alt>不放&#xff0c;讓我的死機的圖形化的Ubuntu強制重啟&#xff0c;然后再次打開發現&#xff0c;我的ubu…

Java基礎面試題02

引用&#xff1a;&#xff08;代碼隨想錄的八股轉免費了&#xff09;以下為網址 卡碼筆記 本文為學習以上文章的筆記&#xff0c;如果有時間推薦直接去原網址 Java中的數據類型有哪些&#xff1f;分為哪兩大類&#xff1f; (考點&#xff1a;Java數據類型及其分類) 【簡單】 基…

RabbitMQ:SpringAMQP Fanout Exchange(扇型交換機)

目錄一、案例需求二、基礎配置三、代碼實現扇形交換機也叫做廣播交換機&#xff0c;通過交換機將消息發送給所有的隊列。 生產者源碼 消費者源碼 一、案例需求 在RabbitMQ控制臺中&#xff0c;聲明隊列fanout.queue1和fanout.queue2。在RabbitMQ控制臺中&#xff0c;聲明交換…

深度解析DeepSeek V3.1 :6850 億參數開源模型如何以 71.6% 編碼得分、68 倍成本優勢重構全球 AI 競爭格局

深度解析DeepSeek V3.1 &#xff1a;6850 億參數開源模型如何以 71.6% 編碼得分、68 倍成本優勢重構全球 AI 競爭格局當DeepSeek悄然將其 6850 億參數的 V3.1 模型上傳至 Hugging Face 平臺時&#xff0c;這個看似低調的舉動卻在全球 AI 領域投下了一顆 “深水炸彈”。這款融合…

Java 大視界 -- Java 大數據在智能安防視頻監控系統中的視頻內容理解與智能預警升級(401)

Java 大視界 -- Java 大數據在智能安防視頻監控系統中的視頻內容理解與智能預警升級&#xff08;401&#xff09;引言&#xff1a;正文&#xff1a;一、傳統安防監控的 “三重困局”&#xff1a;看不全、看不懂、反應慢1.1 人工盯屏 “力不從心”1.1.1 攝像頭密度與人力的矛盾1…

ansible playbook 實戰案例roles | 實現基于node_exporter的節點部署

文章目錄一、核心功能描述二、roles內容2.1 文件結構2.2 主配置文件2.3 tasks文件內容2.4 vars文件內容免費個人運維知識庫&#xff0c;歡迎您的訂閱&#xff1a;literator_ray.flowus.cn 一、核心功能描述 這個 Ansible Role 的核心功能是&#xff1a;?自動化部署 Prometheu…

.NET Core MongoDB 查詢數據異常及解決

.NET Core 查詢 MongoDB異常消息Element _class does not match any field or property of class WebApiServer.Model.Enity.Ypxxx.圖中寫的修改實際是查詢分頁出現的異常&#xff0c;異常是查詢轉換為List<T>時出現的&#xff1a; 這個錯誤通常發生在MongoDB文檔中包含的…

政策技術雙輪驅動智慧燈桿市場擴容,塔能科技破解行業痛點

在新型城市基礎設施建設不斷加速&#xff0c;以及“雙碳”戰略持續深化這樣的雙重背景之下&#xff0c;智慧燈桿市場恰恰迎來了政策紅利得以釋放、技術出現迭代突破并且需求在持續升級的極為難得的黃金發展時期。智慧城市建設 的核心承載從國家層面所開展的全域智能化改造規劃&…

JetBrains Mono字體

好的,我們來詳細解析一下 JetBrains Mono 的 8 種主要字體風格(實際上官方提供了 9 種字重,但通常我們討論其核心風格)及其區別。 這些風格的區別主要體現在兩個方面:字重 和 字形。 核心區別:字重 字重就是字體的粗細程度。JetBrains Mono 提供了從細到極粗的多種選擇…

MySQL 分頁查詢:用 LIMIT 高效處理大量數據

MySQL 分頁查詢&#xff1a;用 LIMIT 高效處理大量數據 在實際開發中&#xff0c;當查詢結果包含成百上千條記錄時&#xff0c;一次性展示所有數據會導致加載緩慢、用戶體驗差。分頁查詢能將數據分段展示&#xff0c;既減輕服務器壓力&#xff0c;又方便用戶瀏覽。MySQL 中通過…

GraphQL 與 REST 在微服務架構中的對比與設計實踐

GraphQL 與 REST 在微服務架構中的對比與設計實踐 隨著微服務架構的普及&#xff0c;API 設計已經成為系統性能、可維護性和開發效率的關鍵。REST&#xff08;Representational State Transfer&#xff09;作為傳統的無狀態架構風格&#xff0c;擁有簡單、成熟的生態&#xff1…

WebSocket通信:sockjs與stomp.js的完美搭檔

sockjs 和 stomp.js 是 WebSocket 通信場景中功能互補的兩個庫,它們的結合能解決實際開發中的關鍵問題,因此常被一起使用。 1. 兩者的核心作用與聯系 sockjs:是一個 傳輸層庫,解決的是“如何在各種環境下建立可靠的雙向通信連接”的問題。 WebSocket 協議本身存在兼容性限…

元宇宙的網絡基礎設施:5G 與 6G 的關鍵作用

1 5G 技術對元宇宙的支撐作用1.1 高帶寬保障沉浸式內容傳輸5G 技術的超大帶寬特性為元宇宙的海量數據傳輸提供了基礎支撐。元宇宙中的沉浸式體驗依賴于高清視頻、3D 模型、實時交互數據等大容量內容&#xff0c;普通 4G 網絡的帶寬&#xff08;約 100Mbps&#xff09;難以滿足需…

【39頁PPT】大模型DeepSeek在運維場景中的應用(附下載方式)

篇幅所限&#xff0c;本文只提供部分資料內容&#xff0c;完整資料請看下面鏈接 https://download.csdn.net/download/2501_92808811/91694206 資料解讀&#xff1a;【39頁PPT】大模型DeepSeek在運維場景中的應用 詳細資料請看本解讀文章的最后內容。大模型技術在當下的科技領…

集成電路學習:什么是Template Matching模版匹配

Template Matching:模版匹配 Template Matching(模版匹配)是一種在圖像處理中廣泛使用的技術,主要用于在一幅大圖像中搜尋與給定模板圖像最相似的區域。以下是對模版匹配的詳細介紹: 一、定義與原理 模版匹配是一種最原始、最基本的模式識別方法,它通過比較模板圖…