偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

邊緣計算中的SymmetricDS數(shù)據(jù)同步

譯文 精選
云計算 邊緣計算
邊緣計算作為一種分布式系統(tǒng)設計架構,旨在將計算與數(shù)據(jù)存儲功能遷移至最為需求的位置——網(wǎng)絡的 “邊緣”。通過將此類任務部署到網(wǎng)絡邊緣,能夠達成實時計算,進而大幅度削減帶寬成本,并顯著縮短延遲。

譯者 | 劉濤

審校 | 重樓

邊緣計算作為一種分布式系統(tǒng)設計架構,旨在將計算與數(shù)據(jù)存儲功能遷移至最為需求的位置——網(wǎng)絡的 “邊緣”。通過將此類任務部署到網(wǎng)絡邊緣,能夠達成實時計算,進而大幅度削減帶寬成本,并顯著縮短延遲。

然而,邊緣計算環(huán)境面臨著諸多挑戰(zhàn),其中較為突出的是邊緣節(jié)點(例如各類本地設備)與中央系統(tǒng)(一般指云平臺或數(shù)據(jù)中心)之間的數(shù)據(jù)同步難題。

值得慶幸的是,存在一些工具可助力解決這些問題。本文將詳細闡述如何運用開源數(shù)據(jù)同步與數(shù)據(jù)庫復制工具SymmetricDS,作為上述問題解決方案之一。讀者將深入了解該工具在任意業(yè)務領域邊緣計算環(huán)境中的使用方式。

本文將引導讀者逐步剖析SymmetricDS背后的核心概念,并深入探討其如何助力優(yōu)化邊緣計算的性能表現(xiàn)。此外,本文還將以零售業(yè)數(shù)據(jù)同步為例,展開實際用例的研究。

什么是SymmetricDS?

SymmetricDS是一款開源軟件工具,主要應用于分布式環(huán)境下,旨在實現(xiàn)數(shù)據(jù)庫之間的數(shù)據(jù)復制、同步以及集成功能。與傳統(tǒng)的數(shù)據(jù)同步工具不同的是,傳統(tǒng)工具往往是針對特定平臺進行定制開發(fā)的,并且大多局限于相同類型數(shù)據(jù)庫之間的數(shù)據(jù)同步操作。而 SymmetricDS 則經(jīng)過專門設計,具備強大的跨平臺兼容性,能夠在運行于不同平臺的各類數(shù)據(jù)庫之間高效地實現(xiàn)數(shù)據(jù)同步。

在實際工作場景中,如果所處的工作環(huán)境相對簡單,僅需使用單一類型的數(shù)據(jù)庫,并且單向的數(shù)據(jù)同步方式即可滿足業(yè)務需求,那么諸如數(shù)據(jù)庫復制或者調度ETL作業(yè)這類傳統(tǒng)方法,或許是更為簡便直接的選擇。然而,對于那些對數(shù)據(jù)同步靈活性要求較高、需要實現(xiàn)實時集成的復雜環(huán)境而言,尤其是涉及到像 POS 系統(tǒng)以及工業(yè)機器等邊緣設備的場景時,SymmetricDS 能夠憑借其獨特優(yōu)勢,為用戶提供更具適應性和全面性的解決方案。

安裝環(huán)境

在安裝 SymmetricDS 之前,需滿足以下各項前提條件:

  1. Java 運行時環(huán)境(JRE):系統(tǒng)必須安裝 Java 8.0 或更高版本。這是確保 SymmetricDS 能夠正常運行的基礎環(huán)境要求。
  2. 數(shù)據(jù)庫:需運行受支持的數(shù)據(jù)庫實例,例如 MySQL、PostgreSQL、Oracle、Server 等。同時,用戶應熟悉所選用數(shù)據(jù)庫的配置方法。
  3. 系統(tǒng)要求:建議系統(tǒng)配備 2GB 內存,以滿足 SymmetricDS 在運行過程中的基本內存需求,確保其性能穩(wěn)定。磁盤空間需求則依據(jù)數(shù)據(jù)量大小以及復制所涉及的對象數(shù)量而有所不同。

理解SymmetricDS架構

SymmetricDS 為跨多個系統(tǒng)(涵蓋邊緣設備)的數(shù)據(jù)同步構建了一套靈活的邊緣計算架構體系。該工具可類比為一個靈活多變的網(wǎng)絡,能夠被設置為中心輻射型或對等拓撲結構,以滿足不同應用場景的需求。

在中心輻射型拓撲結構中,存在一個中央節(jié)點(可以是云服務器,也可以是本地服務器),它與眾多邊緣節(jié)點相互連接。中央節(jié)點在整個架構中承擔著關鍵職責,負責管理數(shù)據(jù)同步的配置參數(shù)、協(xié)調數(shù)據(jù)同步流程的編排工作,以及對數(shù)據(jù)同步過程進行實時監(jiān)控。而每個邊緣節(jié)點則主要負責在本地進行數(shù)據(jù)的采集與處理操作。

在對等拓撲結構中,架構內不存在單一的中央節(jié)點。在此模式下,每個邊緣節(jié)點兼具客戶端與服務器的雙重角色,它們能夠與其他對等的邊緣節(jié)點直接進行數(shù)據(jù)共享,形成一種分布式、去中心化的數(shù)據(jù)交互模式。

每個邊緣節(jié)點均運行自身獨立的SymmetricDS引擎,此引擎負責管理其本地數(shù)據(jù)庫的數(shù)據(jù)同步工作。數(shù)據(jù)同步過程采用推拉模型,具體而言,在邊緣節(jié)點處,數(shù)據(jù)的更改會被實時捕獲并排入隊列。隨后,依據(jù)預先設定的事件或特定條件觸發(fā)相應操作,這些數(shù)據(jù)更改將被傳輸至中央服務器或者其他節(jié)點。

在邊緣計算環(huán)境中運用SymmetricDS,具備諸多顯著優(yōu)勢,其中能夠高效處理離線事務尤為突出。在網(wǎng)絡出現(xiàn)中斷的情況下,邊緣節(jié)點能夠保持自主運行狀態(tài),繼續(xù)執(zhí)行本地的相關任務。待網(wǎng)絡連接恢復之后,邊緣節(jié)點會自動將離線期間積累的數(shù)據(jù)更改進行同步。鑒于這一特性,SymmetricDS 在零售POS系統(tǒng)、遠程監(jiān)控以及物聯(lián)網(wǎng)部署等領域展現(xiàn)出極高的適用性。

SymmetricDS主要由以下部分構成:

  • 節(jié)點:參與同步過程的各個數(shù)據(jù)庫實例。
  • 通道:為達成高效數(shù)據(jù)路由目的而對表進行的一種邏輯分組方式。
  • 觸發(fā)器:捕獲數(shù)據(jù)發(fā)生的更改操作,包括插入、更新以及刪除操作。
  • 路由器:負責確定數(shù)據(jù)更新后的發(fā)送目的地。
  • 批次:數(shù)據(jù)在進行同步之前,會被歸并為一個個批次。
  • 沖突解決機制:用于處理因并發(fā)更新所引發(fā)的數(shù)據(jù)沖突問題。

安裝與設置

步驟1:下載并安裝 SymmetricDS

若要開啟 SymmetricDS 的使用之旅,有兩種獲取途徑:一是從 SourceForge.net下載社區(qū)版(開源),將下載的文件解壓即可;二是若有更高級需求,可從Jumpmind Inc.獲取專業(yè)版,但專業(yè)版需獲取相應授權。在安裝之前,請務必確保在你的計算機系統(tǒng)中正確設置了 JAVA_HOME環(huán)境變量,這是保障SymmetricDS正常運行的基礎前提。

步驟2:創(chuàng)建數(shù)據(jù)庫

安裝一個SymmetricDS支持的數(shù)據(jù)庫,常見的如MySQL、PostgreSQL、Oracle、SQL Server等。安裝完成后,需在該數(shù)據(jù)庫中創(chuàng)建相應的數(shù)據(jù)庫模式以及所需的表結構,為后續(xù)的數(shù)據(jù)存儲與操作奠定基礎。

步驟3:配置節(jié)點

在SymmetricDS環(huán)境中,每個參與數(shù)據(jù)同步的數(shù)據(jù)庫均被視為一個節(jié)點。節(jié)點的配置需在symmetric ds.properties文件中進行定義。以下為一個具體的配置示例:

engine.name=my-node
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/mydb
db.user=root
db.password=root
sync.url=http://localhost:31415/sync/my-node
registration.url=http://localhost:31415/sync/hub

以下詳細說明上述 SQL 語句各自的作用:

  • engine.name=my node:此語句的功能是為 SymmetricDS 實例賦予一個特定名稱。
  • db.driver=com.mysql.cj.jdbc.Driver:該語句明確指定了用于連接 MySQL數(shù)據(jù)庫的JDBC驅動程序。
  • db.url=jdbc:mysql://localhost:3306/mydb:此語句用于指定數(shù)據(jù)庫的訪問路徑,即 URL。
  • db.user=root 與 db.password=root:這兩條語句分別定義了訪問數(shù)據(jù)庫所需的憑證。
  • sync.url:該語句用于定義數(shù)據(jù)同步的目標地址,也就是此節(jié)點發(fā)送數(shù)據(jù)的目的地。
  • registration.url:此語句指定了用于管理注冊的中心節(jié)點的 URL。

步驟4:啟動SymmetricDS

若要啟動SymmetricDS,需在解壓后的文件夾中執(zhí)行以下命令:

./sym_service start # On Linux/macOS
sym_service.bat start # On Windows

執(zhí)行此命令后,將啟動SymmetricDS引擎,該引擎開始監(jiān)控配置的數(shù)據(jù)庫的更改。

定義同步規(guī)則

SymmetricDS的同步規(guī)則是其核心組件之一,這些規(guī)則明確了哪些數(shù)據(jù)變更需要被捕獲,并規(guī)定了數(shù)據(jù)在各個邊緣節(jié)點之間的路由方式。這些規(guī)則具有高度的可配置性,旨在精確界定數(shù)據(jù)在不同數(shù)據(jù)庫之間傳輸?shù)木唧w方式以及時機。

在進行同步規(guī)則設置時,可參考以下步驟:

步驟1:定義節(jié)點組

在SymmetricDS里,配置規(guī)則是作用于節(jié)點組的。這種方式在分布式環(huán)境中,能夠有效控制數(shù)據(jù)在不同節(jié)點間的流動方式。

INSERT INTO SYM_NODE_GROUP (node_group_id, description)
VALUES ('Store', 'Store Node');
INSERT INTO SYM_NODE_GROUP (node_group_id, description)
VALUES ('Corp', 'Corp Node');

在此代碼示例中:

  • Store組用于表征邊緣節(jié)點(例如,實際應用中的門店數(shù)據(jù)庫)。
  • Corp組用于代表中央核心節(jié)點。

步驟2:定義組鏈接

組鏈接的作用在于確定由哪個節(jié)點組發(fā)起數(shù)據(jù)交換同步操作。通過設置組鏈接,能夠清晰地界定兩個或多個節(jié)點組之間的關聯(lián)關系,進而明確數(shù)據(jù)在這些節(jié)點組之間的流動方式以及時機。

INSERT INTO SYM_NODE_GROUP_LINK (source_node_group_id, target_node_group_id, data_event_action)
VALUES ('Store', 'Corp', 'P'); // 'P' represents 'Push'
INSERT INTO SYM_NODE_GROUP_LINK (source_node_group_id, target_node_group_id, data_event_action)
VALUES ('Corp', 'Store', 'W'); // 'W' represents 'Wait for Pull'

在此處:

  • Stores組向Corp節(jié)點執(zhí)行推送(‘P’)數(shù)據(jù)(例如將門店的銷售數(shù)據(jù)發(fā)送至總部)。
  • Stores組處于等待狀態(tài),從Corp節(jié)點拉?。ā甒’)數(shù)據(jù)(例如接收總部下發(fā)的庫存更新信息)。

步驟3:為數(shù)據(jù)流定義路由器和觸發(fā)路由器

路由器基于特定規(guī)則(例如操作類型,如插入、更新、刪除等)對需要同步的數(shù)據(jù)進行篩選。通過排除不必要的數(shù)據(jù)傳輸,路由器能夠確保只有必要的數(shù)據(jù)被準確路由至正確的目的地。

INSERT INTO SYM_ROUTER (router_id, source_node_group_id, target_node_group_id, router_type, 
sync_on_update, sync_on_insert, sync_on_delete)
VALUES('corp to store', 'corp', 'store', 'default ', 1, 1, 1);
INSERT INTO SYM_TRIGGER_ROUTER (trigger_id, router_id, initial_load_order)
VALUES('user', 'corp to store', '1');

上述代碼實現(xiàn)了以下功能:

  • 定義了一個名為“corp to store”的路由器,其作用是將數(shù)據(jù)從Corp同步至Store。
  • 選用 “default”路由器類型。
  • “sync_on_update = 1” 表明Corp數(shù)據(jù)庫中的更新操作所產(chǎn)生的數(shù)據(jù)變化,都將被同步到Store。
  • “sync_on_insert = 1” 意味著Corp中的插入操作數(shù)據(jù)會同步至 Store。
  • “sync_on_delete = 1” 說明Corp里的刪除操作數(shù)據(jù)也會同步到Store。現(xiàn)在,我們將此路由器鏈接到一個觸發(fā)器:
    INSERTINTO SYM_TRIGGER_ROUTER (trigger_id, router_id, initial_load_order)
    VALUES('user','corp to store','1');

這樣一來,便能夠確保當觸發(fā)器監(jiān)測到用戶表發(fā)生變更時,相關數(shù)據(jù)會依據(jù) “corp to store” 規(guī)則進行路由 。

步驟4:定義通道

通道用于對表中的數(shù)據(jù)進行邏輯分組。通過這種方式,它能夠有效地組織和區(qū)分不同的數(shù)據(jù)流,進而讓數(shù)據(jù)同步過程變得更加高效,并且使整個系統(tǒng)具備良好的可擴展性。

INSERT INTO SYM_CHANNEL (channel_id, max_batch_size, max_batch_to_send, max_data_to_route, 
enabled, batch_algorithm, description)
VALUES ('users', '10000', '100', '500000', '1', 'default', 'user data');

此段代碼實現(xiàn)了以下功能:

  • 定義了一個名為“users”的通道。
  • 設定將數(shù)據(jù)按照每次同步10,000行的規(guī)模進行分批處理。
  • 通過限制每次同步的批次數(shù)量為100個,且每條路由的數(shù)據(jù)記錄數(shù)為500,000條,以此來保障同步效率。

步驟 5:定義表觸發(fā)器

定義表觸發(fā)器在整個數(shù)據(jù)同步流程中具有重要作用,其主要功能是對數(shù)據(jù)庫表中的數(shù)據(jù)更改進行檢測與管理。表觸發(fā)器如同事件監(jiān)聽器一般,時刻追蹤源數(shù)據(jù)庫內發(fā)生的變化。若系統(tǒng)中未設置表觸發(fā)器,那么系統(tǒng)將無法確定何時啟動同步更改操作,也無法明確具體需要同步哪些數(shù)據(jù)。

INSERT INTO SYM_TRIGGER (trigger_id, source_table_name, channel_id)
VALUES ('user', 'user', 'user');

此段代碼負責跟蹤用戶表中的變動情況。一旦有更改發(fā)生,這些更改數(shù)據(jù)將通過 “users” 通道進行路由傳輸。

步驟 6:測試數(shù)據(jù)同步

若要對數(shù)據(jù)同步功能進行測試,可向源數(shù)據(jù)庫中插入若干測試數(shù)據(jù):

INSERT INTO user (id, name, email) 
VALUES (1, 'Alice', 'alice@example.com');

隨后,運行 SymmetricDS 同步操作,查看該記錄是否會在目標數(shù)據(jù)庫中出現(xiàn)。

步驟 7:監(jiān)控與故障排查

可查看 logs/wrapper.log 文件中的日志信息。若某個批次的同步操作失敗,可通過執(zhí)行以下 SQL 查詢來檢查錯誤情況:

SELECT * FROM SYM_OUTGOING_BATCH WHERE ERROR_FLAG = 1;

執(zhí)行上述查詢后,系統(tǒng)將獲取出現(xiàn)錯誤的批次ID(BATCH_ID)。接下來,運行以下SQL語句,即可獲取失敗批次的具體數(shù)據(jù):

SELECT * FROM SYM_DATA WHERE data_id in (select failed_data_id from sym_outgoing_batch WHERE batch_id='XXXXX' and node_id='YYYY');

SymmetricDS 在邊緣計算中的優(yōu)勢

在邊緣計算場景中,數(shù)據(jù)在更接近源頭的位置(例如銷售點系統(tǒng)、物聯(lián)網(wǎng)設備、傳感器等)進行處理。在此背景下,SymmetricDS 展現(xiàn)出諸多優(yōu)勢,使其成為一款強大的數(shù)據(jù)同步工具。

  1. 低延遲:SymmetricDS支持在本地進行數(shù)據(jù)處理,僅需定期與中央服務器進行同步。這種方式有效減少了在云環(huán)境中進行實時數(shù)據(jù)處理時所產(chǎn)生的延遲,確保數(shù)據(jù)能夠快速響應業(yè)務需求。
  2. 帶寬優(yōu)化:該工具在數(shù)據(jù)同步過程中,僅傳輸數(shù)據(jù)的增量更改部分,而非整個數(shù)據(jù)集。這一特性極大地降低了持續(xù)數(shù)據(jù)傳輸?shù)男枨?,進而有效節(jié)省了網(wǎng)絡帶寬資源,提升了系統(tǒng)的整體運行效率。
  3. 容錯能力:在邊緣計算環(huán)境中,網(wǎng)絡連接往往不穩(wěn)定,甚至可能出現(xiàn)間歇性中斷的情況。SymmetricDS 具備強大的容錯能力,即便在連接斷開的狀態(tài)下,依然能夠實現(xiàn)數(shù)據(jù)復制。這一關鍵特性使其在網(wǎng)絡連接不可靠的場景中表現(xiàn)出色,同時也為離線數(shù)據(jù)處理提供了有力支持,確保業(yè)務流程不受網(wǎng)絡問題的過多干擾。
  4. 可擴展性:SymmetricDS具備良好的擴展性,能夠輕松擴展至大量的邊緣節(jié)點,并支持復雜的系統(tǒng)架構。即使在系統(tǒng)不斷添加更多功能的情況下,依然能夠確保性能的穩(wěn)步提升,滿足業(yè)務規(guī)模增長和復雜度增加的需求。

應用案例:SymmetricDS 如何解決零售商的實時數(shù)據(jù)難題

假定有一家零售連鎖企業(yè),在某一國家、州或特定地區(qū)擁有眾多門店。每家門店均配備獨立的本地銷售點(POS)系統(tǒng)、庫存系統(tǒng)以及用于客戶交互的數(shù)據(jù)庫。

總部在制定關鍵決策時,高度依賴從所有門店收集的實時信息。這些決策涵蓋庫存管理、銷售報告生成、客戶活動監(jiān)控以及促銷活動策劃等多個方面。因此,實現(xiàn)低延遲地同步來自眾多門店的數(shù)據(jù)至關重要,這是確保庫存數(shù)據(jù)準確、交易記錄精準以及門店運營協(xié)調順暢的關鍵所在。

在零售業(yè)中,各門店之間庫存不一致是較為常見的問題之一。例如,當某家門店售出一件商品時,其庫存系統(tǒng)必須即刻更新,以避免其他門店出現(xiàn)超售或缺貨的情況。然而,傳統(tǒng)的數(shù)據(jù)同步方式往往容易引發(fā)延遲或出現(xiàn)錯誤,從而在部分門店造成缺貨或者導致庫存積壓的情況。

SymmetricDS為所有門店與中央系統(tǒng)之間實現(xiàn)實時數(shù)據(jù)同步提供了更為可靠的解決方案。無論何時,只要有任何一家門店完成商品銷售操作,SymmetricDS便會迅速更新本地門店系統(tǒng)以及中央數(shù)據(jù)庫中的庫存數(shù)據(jù)。通過這種方式,能夠確保其他門店始終獲取到最新的庫存信息,有效避免網(wǎng)絡環(huán)境下庫存不一致問題的發(fā)生。

結論

SymmetricDS內置一套強大的功能集合,能夠對邊緣計算環(huán)境進行優(yōu)化。該工具聚焦于增量數(shù)據(jù)同步、數(shù)據(jù)壓縮以及異步復制等關鍵技術,在延遲控制、帶寬利用以及容錯能力等方面均展現(xiàn)出卓越的性能提升。

在實際應用場景中,邊緣計算環(huán)境中引入SymmetricDS能夠顯著提高分布式應用的運行效率。它不僅賦予系統(tǒng)更高的可擴展性,還能助力實現(xiàn)更快速的決策制定過程,同時有效降低對中央服務器的依賴程度。

借助本文所探討的方法,邊緣設備在運行過程中具備高度自主性,能夠成功地與主服務器完成同步操作。即便處于業(yè)務高峰等復雜條件下,依然可以維持高性能的數(shù)據(jù)處理與傳輸輸出,為各類復雜業(yè)務場景提供堅實可靠的技術支持。

譯者介紹

劉濤,51CTO社區(qū)編輯,某大型央企系統(tǒng)上線檢測管控負責人。

原文標題:Data Synchronization for Edge Computing with SymmetricDS,作者:Divya Valsala Saratchandran

責任編輯:華軒 來源: 51CTO
相關推薦

2020-08-07 10:42:56

邊緣計算云計算云平臺

2022-06-28 11:09:42

邊緣計算云計算IT

2023-06-16 08:45:24

5GMEC通信

2020-06-22 10:33:52

云計算邊緣計算IT

2023-09-01 14:32:56

云計算邊緣計算

2020-05-07 10:27:26

邊緣計算云計算物聯(lián)網(wǎng)

2022-08-26 12:14:33

邊緣計算物聯(lián)網(wǎng)

2019-09-02 10:05:12

云計算邊緣計算數(shù)據(jù)中心

2018-10-28 15:33:29

邊緣計算數(shù)據(jù)中心網(wǎng)絡

2021-08-16 10:13:59

邊緣計算邊緣網(wǎng)絡邊緣數(shù)據(jù)管理

2021-01-27 09:53:58

邊緣計算云計算

2021-03-02 09:11:56

云計算邊緣計算數(shù)據(jù)中心

2023-08-14 15:42:10

邊緣計算云計算

2023-11-14 17:40:32

2020-07-24 20:54:28

人工智能邊緣計算

2022-09-28 15:07:32

存儲數(shù)據(jù)中心云計算

2021-02-02 21:47:10

邊緣計算云計算技術

2021-04-12 13:17:03

邊緣計算云計算

2018-05-04 12:43:09

邊緣計算挑戰(zhàn)

2023-04-14 11:06:40

點贊
收藏

51CTO技術棧公眾號