国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

論配置化系統的配置流程

Linux愛好者 ? 來源:網絡整理 ? 作者:網絡整理 ? 2021-03-31 14:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

描述

很多業務場景固定、不那么偏向“業務”的系統如果遇到靠譜的工程師最終會走向配置化。達到配置化的先決條件是 系統內部有個”引擎“模塊,引擎讀取配置信息把業務流程生成出執行計劃,這個執行計劃根據業務形態可以是 DAG、鏈表、樹或是其他。有了這套系統,日常開發就變成寫配置+豐富系統能力了。

舉個例子:

“用戶每次下單后統計其當天完單量,并發給下游營銷系統其總完單量信息。下游營銷系統會根據用戶的完單量推送優惠策略。

這個業務需求抽象后可以用下圖表示業務流程,黃色方塊主要和存儲打交道,藍色方塊是純計算流程。

論配置化系統的配置流程

這整個流程完全可以用配置化方式解決:

MQ消息的ETL在配置中描述需要的字段的path信息解析;

黃色方塊的operator主要操作存儲,需要在配置中描述數據的存儲以及獲取相關的信息;

藍色方塊的operator是純計算流程,配置中描述schema格式即可;

最后再配個轉發mq消息的配置,不到一小時支持了一個看起來有點復雜的業務需求,此時你就可以美滋滋的寫周報去了~

整個流程看起來無比絲滑,但是配置化系統是銀彈嗎?繼續探究一下所謂的”配置“。

咋存

第一個問題是系統的配置存在哪里。

配置化系統的本質是:引擎解析配置信息,生成operator執行計劃操作DB和計算行為。程序員通過提前寫好通用operator,支持業務時不上線、不寫定制代碼,只寫配置信息就可以支持業務,一定程度上提高了開發效率。

配置信息可以選擇存到db或是file里。如果我們目的之一是不上線即可支持業務,那把配置信息寫到文件里就不是個好主意,因為在代碼中更新文件后還得經過上線流程,這樣會降低效率,所以把配置存到db里。

把配置文件存入像MySQL這樣的db里,還有其他好處:

前面例子中講到了完單量這個業務流程的配置信息,配置信息可以當成一個API供上游調用,這樣的API是可以復用的,當系統里有成千上萬的API后,若沒有一套管理系統來管理元信息,那幾乎就是災難了。配置的元信息存到MySQL后,你可以很快樂的寫一些管理接口管理配置。

基于MySQL的備份機制還可以做配置信息備份,以防不測。

咋配

第二個問題是 配置=簡單嗎?

有了配置化系統之后,開發日常的工作就變成了寫配置,然而在mysql里通過SQL寫配置并不一定比寫代碼輕松愉快。。。

文章前面的例子模型可以抽象成一個形如鏈表的pipline,這樣看起來還比較簡單,但是現實中很多業務比這個要復雜多了,很多業務抽象出來是個好幾層的樹型結構,這種東西靠人寫SQL描述執行計劃并不一定比寫代碼簡單多少。稍微拓展一下上面的例子:

“用戶每次完單后統計其總完單量,完單量達到不同閾值后給用戶下發不同的成就。

這個API的模型如下圖所示,它采用所謂的lambda架構,在離線中計算用戶T+1的總單量,同時根據離線總單量產出日期dt 補充在線單量,最終把兩部分數據加起來返回給業務方結果。

論配置化系統的配置流程

為啥要采用這樣的架構呢。由于離線數據的產出時間不固定,所以需要一個dt字段做標識。

舉個例子,現在是3月20號凌晨1點整,此時19號的離線任務沒有跑完,此時單量計算規則為:

“用戶總完單量 = 18號總單量(離線)+19號當天單量(在線) + 20號當天單量(在線)。

若現在8點鐘,離線任務跑完了,此時單量計算規則為:

“用戶總完單量 = 19號總單量(離線) + 20號當天單量(在線)。

上面這套流程已經比較復雜了,你可以想一下這塊該如何配置,再想想如何通過SQL去描述配置。如果業務方還想在API中增加判定邏輯,比如 單量超過500單就通知下游給用戶發個章,那配置起來就更復雜了。所以把配置存到管理平臺后,還需要在平臺上搞一個牛逼的前端頁面,讓開發同學可以在界面上勾勾選,拖拖拽拽,把配置描述出來,而且支持REPL讓用戶可以debug。

咋保證HA

現在有了管理系統+MySQL去管理配置就萬事大吉了嗎?

萬事總有個意外。業務迭代過程中,系統開發一般會比平臺開發先行。比如你為這套牛逼的配置系統增加了一個feature,在這個feature集成到平臺之前,還是得寫SQL做需求。這其實有很大風險的:如果你SQL寫錯了,在線下沒復現出來,業務比較著急,上線時候沒灰度就上全量集群了,系統就崩了~此時你慌得一批,趕緊寫了個delete的SQL去刪除那行配置,如果這個delete恰好沒加條件,且你的MySQL中沒配置SQL_SAFE_UPDATES變量,那恭喜你,這一趟折騰下來系統不可用時間起碼半個小時,可以準備跑路了~

前面那段是我編的,只是要說明需要保證配置的HA(high availability)。

我們寫代碼時會使用git來做版本控制,且像golang這種編譯型語言還會有編譯器來幫你檢查代碼是否有語法錯誤。如果配置也像代碼一樣,那該有多好啊:

論配置化系統的配置流程

實際上這兩部分都是可以達到的,

編譯檢查方面:配置信息一般使用json格式表示,所謂編譯檢查一方面可以檢查json格式是否正確,另一方面可以根據業務特性檢查json配置是否符合規范。

版本控制方面:前些日子逛Github時我發現了一個有趣的庫:https://github.com/dolthub/dolt。看一下它的介紹:

“Dolt is a SQL database that you can fork, clone, branch, merge, push and pull just like a git repository. Connect to Dolt just like any MySQL database to run queries or update the data using SQL commands. Use the command line interface to import CSV files, commit your changes, push them to a remote, or merge your teammate‘s changes.

這玩意可以視為一個支持SQL協議和Git協議的數據庫,支持git就有趣多了,我們所有關于配置的更改記錄都有版本信息,基于這個庫封裝出API并集成在管理平臺中,前端渲染一個酷炫版本信息頁面。我們就可以通過點點點進行git reset操作了。

對于配置本身,可以有一些方式來保證高可用,在系統內部,同樣可以做一些兜底操作,如下圖所示:

論配置化系統的配置流程

責任編輯:lq6

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    2371

    瀏覽量

    66772
  • ETL
    ETL
    +關注

    關注

    0

    文章

    25

    瀏覽量

    10118

原文標題:論配置化系統的配置

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    云臺電機驅動系統載波參數配置與調試

    核心參數(頻率、載波比、死區時間等)的配置原則、場景取值標準,詳細拆解從硬件適配到軟件調試的全流程步驟,并針對常見問題提供排查方案,為工程技術人員提供標準的參數
    的頭像 發表于 03-06 15:11 ?46次閱讀

    利用Last Log(Ramoops)排查系統問題:配置與實踐指南

    Linux 內核的ramoops機制實現)可在系統異常時保存核心日志,為事后故障分析提供關鍵依據。本文將詳細介紹其配置方法與問題排查實踐,并通過具體案例演示實戰流程
    的頭像 發表于 02-05 13:54 ?240次閱讀
    利用Last Log(Ramoops)排查<b class='flag-5'>系統</b>問題:<b class='flag-5'>配置</b>與實踐指南

    國民技術發布N32Cube芯片配置與初始代碼生成工具

    1月30日,國民技術(NSING)正式發布N32Cube——芯片配置與初始代碼生成工具,讓時鐘、引腳與外設的配置一目了然、輕松上手!
    的頭像 發表于 02-02 15:26 ?548次閱讀
    國民技術發布N32Cube芯片<b class='flag-5'>配置</b>與初始<b class='flag-5'>化</b>代碼生成工具

    RK3562單板機系統使用與開發手冊:基礎操作、升級部署與工具鏈配置(一)

    、Docker、OpenCV 等常用組件的安裝方法。文檔適配 Windows 與 Ubuntu 開發環境,步驟規范、實操性強。創龍科技通過標準流程,幫助開發者快速掌握系統運維與功能拓展技能,適用于嵌入式開發與工業控制場景。
    的頭像 發表于 01-27 15:05 ?189次閱讀
    RK3562單板機<b class='flag-5'>系統</b>使用與開發手冊:基礎操作、升級部署與工具鏈<b class='flag-5'>配置</b>(一)

    掌握 LuatIO:GPIO 復用模式初始配置流程解析

    在使用 LuatIO 進行嵌入式應用開發時,合理配置 GPIO 的復用功能是實現外設控制的前提。本文全面解析 GPIO 引腳由普通 IO 轉換為復用功能引腳的初始流程,包括時鐘使能、模式選擇、速度
    的頭像 發表于 01-23 15:28 ?1137次閱讀
    掌握 LuatIO:GPIO 復用模式初始<b class='flag-5'>化</b><b class='flag-5'>配置</b>全<b class='flag-5'>流程</b>解析

    電能質量在線監測裝置的系統運行配置參數有哪些?

    系統運行配置參數是控制裝置工作模式、資源調度、故障應對、長期穩定運行的核心參數,直接決定裝置如何適配應用場景(如無人值守、低功耗、高頻監測),確保采樣、存儲、通信等核心功能有序執行。以下是分類詳解
    的頭像 發表于 12-17 14:18 ?282次閱讀

    開啟指尖配置智能感知新時代

    HLK-LD6004雷達模組,海凌科正式推出移動端APP配置工具,支持Android與iOS系統。將原本需要通過電腦GUI工具的復雜配置流程,簡化至一部手機即可完成,極大提升了開發調試
    的頭像 發表于 11-24 11:07 ?625次閱讀
    開啟指尖<b class='flag-5'>配置</b>智能感知新時代

    發布元服務配置本地基礎信息(應用名稱、圖標)

    您可以添加元服務支持的語言,并配置對應語言的本地信息。 例如,當您設置簡體中文為默認語言,并且只配置中文的本地信息,那么元服務在所有設置的發布國家或地區的信息都將顯示中文。如果您還
    發表于 10-24 17:42

    SMC串行傳輸系統通過Profinet轉EtherCAT網關進行連接的配置案例

    SMC串行傳輸系統通過Profinet轉EtherCAT網關進行連接的配置案例 本案例是通過使用穩聯技術研發的EtherCAT轉Profinet網關將串行傳輸系統模塊接入到西門子PLC
    的頭像 發表于 09-22 17:00 ?696次閱讀
    SMC串行傳輸<b class='flag-5'>系統</b>通過Profinet轉EtherCAT網關進行連接的<b class='flag-5'>配置</b>案例

    恩智浦配置工具助力嵌入式系統設計

    設計嵌入式系統需要硬件和軟件之間的無縫協調。恩智浦配置工具是一款全面且用戶友好的解決方案,旨在幫助開發人員簡化系統設置流程,加快開發進程并減少潛在錯誤。
    的頭像 發表于 09-22 16:37 ?1917次閱讀

    GraniStudio:IO初始以及IO資源配置例程

    1.文件運行 導入工程 雙擊運行桌面GraniStudio.exe。 通過引導界面導入IO初始以及IO資源配置例程,點擊導入按鈕。 打開IO初始以及IO資源配置例程所在路徑,選中I
    的頭像 發表于 08-22 17:34 ?936次閱讀
    GraniStudio:IO初始<b class='flag-5'>化</b>以及IO資源<b class='flag-5'>配置</b>例程

    Linux系統中網絡配置詳解

    網絡配置是Linux系統運維中的核心技能之一。正確理解和配置子網掩碼、網關等網絡參數,直接影響系統的網絡連通性和性能。本文將深入探討Linux系統
    的頭像 發表于 07-17 11:01 ?1198次閱讀

    NVMe高速傳輸之擺脫XDMA設計之七:系統初始

    直接采用PCIe實現NVMe功能,它的系統初始流程主要分為鏈路訓練、PCIe 初始和 NVMe 初始, 分別實現 PCIe鏈路連接、
    發表于 07-04 09:14

    Jtti.ccLinux基礎運維實戰詳細解讀網絡配置和用戶管理與互信設置

    Linux系統管理中,網絡連通性、用戶權限控制與主機互信是核心運維能力。本文以CentOS/Ubuntu為例,系統化講解關鍵操作流程及深度優化方案。 一、網絡配置:靜態IP與多網卡管理
    的頭像 發表于 06-25 17:28 ?1565次閱讀

    EM儲能網關 ZWS智慧儲能云應用(13) — 企業個性配置

    儲能公有云平臺,企業用戶如何自主個性配置?ZWS智慧儲能云通過靈活的多級配置功能,實現個性系統配置,幫助強化儲能企業獨特性。簡介儲能企業
    的頭像 發表于 05-23 11:39 ?790次閱讀
    EM儲能網關 ZWS智慧儲能云應用(13) — 企業個性<b class='flag-5'>化</b><b class='flag-5'>配置</b>