[討論] 平臺建設,我們從架構中去掉kafka?

来源:https://www.cnblogs.com/lsjwq/archive/2020/03/05/12419411.html
-Advertisement-
Play Games

目 錄 1. 概述... 2 2. 原有結構(帶kafka)... 2 3. 改造後的結構(去掉kafka)... 3 4. 對比... 4 1. 概述 我們主要面向鋼鐵行業工業互聯網公有雲和私有去建設,偏向PAAS層和SAAS層應用,框架是支撐這個體系建設。現在我們的公有雲的IAAS資源層使用的是 ...


目       錄

1.      概述... 2

2.      原有結構(帶kafka)... 2

3.      改造後的結構(去掉kafka)... 3

4.      對比... 4


1.   概述

          我們主要面向鋼鐵行業工業互聯網公有雲和私有去建設,偏向PAAS層和SAAS層應用,框架是支撐這個體系建設。現在我們的公有雲的IAAS資源層使用的是第三方雲平臺,現在有50個左右的站點,1個站點就是一個生產單位,1個站點每天傳輸到公有雲平臺的數據大概為300-500MB,1個站點的數據包括:一級PLC及感測器的數據、原燃料的化驗數據、模型計算結果數據、產量數據及人工填報的數據,我們大致把這些數據分為兩大類:設備數據和業務數據,暫時不包括:經營數據、物流數據、資產數據等。數據的實時性,基本上是現場產生了數據,會秒級檢測,立即上傳。數據的完整性,設備數據一般用於監測,可以有丟失的情況,業務數據一般用於報表、統計和分析,要求完整性和一致性,不能多數據也不能少數據

        上述就是我們的公有雲平臺的大致情況,下麵把我們的原來的結構和改造完成的結構和大家分享一下,大家可以充分討論。

2.   原有結構(帶kafka)

     接收到全國站點的數據後:

    (1)    把本次傳輸的數據寫入到redis緩存中。

    (2)    把本次傳輸的數據編號存儲到mysql資料庫,形成待處理的任務。

    (3)    把本次傳輸的數據編號發送給kafka消息列隊,負載平衡通知處理端處理本次傳輸的數據。

    (4)    處理端接收到kafka的本次傳輸的數據編號,從redis取出來數據,進行入庫操作,關係數據、文件數據、視頻數據、圖片數據等。

    (5)    本次傳輸的數據處理完成。

     以上描述是接收數據後的整體流程,結構示意,如下圖:

3.   改造後的結構(去掉kafka)

      接收到全國站點的數據後:

    (1)把本次傳輸的數據寫入到redis緩存中。

    (2)把本次傳輸的數據編號存儲到mysql資料庫,同時指定哪個處理端負責處理數據,形成待處理的任務。

    (3)處理端定周期從mysql取得自己負責處理的任務,再從redis取出來數據,進行入庫操作,關係數據、文件數據、視頻數據、圖片數據等。

    (4)如果處理端服務異常掛掉,那麼接收數據端會重新分配該處理端無法處理的數據處理任務。

    (5)本次傳輸的數據處理完成

      以上描述是改造後,接收數據後的整體流程,結構示意,如下圖:

4.   對比

(1)    原有結構,實時的效率更高,kafka直接負載分配給處理端。

             改造後結構,處理端需要定周期從mysql取得自己的處理任務,有周期耗時時間。

(2)    原有結構,如果一個處理端處理數據事務超時,kafka重新分配分區,會影響所有處理端,造成待處理任務堆積。

             改造後結構,如果一個處理端掛掉了,重新分配的時間比較快,並且不影響其他處理端。

(3)    原有結構,處理環節比較多。

             改造後結構,少了kafka的環節。

(4)其他網友補充……。


 文章:

  .NET Core開發的iNeuOS工業互聯網平臺,發佈 iNeuDA 數據分析展示組件,快捷開發圖形報表和數據大屏

  [視頻演示].NET Core開發的iNeuOS物聯網平臺,實現從設備&PLC、雲平臺、移動APP數據鏈路閉環

  .NET Core開發的iNeuOS物聯網平臺部署樹霉派(raspbian),從網關到雲端整體解決方案

  .NET Core開發的iNeuOS物聯網平臺部署在Ubuntu操作系統,無縫跨平臺

  iNeuOS 物聯網雲操作系統2.0發佈,集成設備容器、視圖建模、機器學習三大模塊

  iNeuOS雲操作系統,.NET Core全系打造


  物聯網&大數據技術 QQ群:54256083 

  物聯網&大數據合作 QQ群:727664080

  網站:http://www.ineuos.net

  聯繫QQ:504547114

  合作微信:wxzz0151

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引子 js的setTimeout方法用處比較多,通常用在頁面刷新了、延遲執行了等等。但是很多javascript新手對setTimeout的用法還是不是很瞭解。雖然我學習和應用javascript已經兩年多了,但是對setTimeout方法,有時候也要查閱資料。今天對js的setTimeout方法做 ...
  • 定義和用法 sort() 方法用於對數組的元素進行排序。 語法 ~~~ arrayObject.sort(sortby) ~~~ | 參數 | 描述 | | | | | sortby | 可選。規定排序順序。必須是函數。 | 返回值 對數組的引用。請註意,數組在原數組上進行排序,不生成副本。 說明 ...
  • 實例 在數組中讀取元素: citrus 結果輸出: 定義和用法 slice() 方法可從已有的數組中返回選定的元素。 slice()方法可提取字元串的某個部分,並以新的字元串返回被提取的部分。 註意: slice() 方法不會改變原始數組。 瀏覽器支持 所有主要瀏覽器都支持slice()。 語法 a ...
  • 實例 數組中添加新元素: fruits 結果輸出: 定義和用法 push() 方法可向數組的末尾添加一個或多個元素,並返回新的長度。 註意: 新元素將添加在數組的末尾。 註意: 此方法改變數組的長度。 提示: 在數組起始位置添加元素請使用 "unshift()" 方法。 瀏覽器支持 所有主要瀏覽器都 ...
  • 定義和用法 pop() 方法用於刪除並返回數組的最後一個元素。 語法 ~~~ arrayObject.pop() ~~~ 返回值 arrayObject 的最後一個元素。 說明 pop() 方法將刪除 arrayObject 的最後一個元素,把數組長度減 1,並且返回它刪除的元素的值。如果數組已經為 ...
  • 定義和用法 join() 方法用於把數組中的所有元素放入一個字元串。 元素是通過指定的分隔符進行分隔的。 語法 ~~~ arrayObject.join(separator) ~~~ | 參數 | 描述 | | | | | separator | 可選。指定要使用的分隔符。如果省略該參數,則使用逗號 ...
  • `hasOwnProperty() true false`。 該方法屬於 對象,由於所有的對象都"繼承"了Object的對象實例,因此幾乎所有的實例對象都可以使用該方法。 IE 5.5+、FireFox、Chrome、Safari、Opera等主流瀏覽器均支持該函數。 語法 JavaScript: ...
  • google模式下: ie模式下: 火狐模式下: FILTER(ie模式);background: moz linear gradient(火狐模式);background: webkit gradient(谷歌模式)。 以上是為了區別不同瀏覽器的不同效果,我把色碼區別開了。為了相容所有瀏覽器的相同 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...