1. 程式人生 > >[討論] 平臺建設,我們從架構中去掉kafka?

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

目       錄

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