在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

論配置化系統(tǒng)的配置流程

Linux愛好者 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2021-03-31 14:19 ? 次閱讀

描述

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

舉個例子:

“用戶每次下單后統(tǒng)計其當(dāng)天完單量,并發(fā)給下游營銷系統(tǒng)其總完單量信息。下游營銷系統(tǒng)會根據(jù)用戶的完單量推送優(yōu)惠策略。

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

論配置化系統(tǒng)的配置流程

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

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

黃色方塊的operator主要操作存儲,需要在配置中描述數(shù)據(jù)的存儲以及獲取相關(guān)的信息;

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

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

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

咋存

第一個問題是系統(tǒng)的配置存在哪里。

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

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

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

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

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

咋配

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

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

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

“用戶每次完單后統(tǒng)計其總完單量,完單量達(dá)到不同閾值后給用戶下發(fā)不同的成就。

這個API的模型如下圖所示,它采用所謂的lambda架構(gòu),在離線中計算用戶T+1的總單量,同時根據(jù)離線總單量產(chǎn)出日期dt 補充在線單量,最終把兩部分?jǐn)?shù)據(jù)加起來返回給業(yè)務(wù)方結(jié)果。

論配置化系統(tǒng)的配置流程

為啥要采用這樣的架構(gòu)呢。由于離線數(shù)據(jù)的產(chǎn)出時間不固定,所以需要一個dt字段做標(biāo)識。

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

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

若現(xiàn)在8點鐘,離線任務(wù)跑完了,此時單量計算規(guī)則為:

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

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

咋保證HA

現(xiàn)在有了管理系統(tǒng)+MySQL去管理配置就萬事大吉了嗎?

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

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

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

論配置化系統(tǒng)的配置流程

實際上這兩部分都是可以達(dá)到的,

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

版本控制方面:前些日子逛Github時我發(fā)現(xiàn)了一個有趣的庫: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協(xié)議和Git協(xié)議的數(shù)據(jù)庫,支持git就有趣多了,我們所有關(guān)于配置的更改記錄都有版本信息,基于這個庫封裝出API并集成在管理平臺中,前端渲染一個酷炫版本信息頁面。我們就可以通過點點點進(jìn)行g(shù)it reset操作了。

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

論配置化系統(tǒng)的配置流程

責(zé)任編輯:lq6

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1518

    瀏覽量

    62449
  • ETL
    ETL
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    9430

原文標(biāo)題:論配置化系統(tǒng)的配置

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

收藏 人收藏

    評論

    相關(guān)推薦

    hyper-v 配置,Hyper-V配置:性能優(yōu)化與高級設(shè)置

    Hyper-V配置:性能優(yōu)化與高級設(shè)置。 ? ?Hyper-V配置:性能優(yōu)化與高級設(shè)置 ? ?在虛擬環(huán)境中,Hyper-V作為一款強大的虛擬平臺,通過合理的
    的頭像 發(fā)表于 02-08 09:49 ?111次閱讀
    hyper-v <b class='flag-5'>配置</b>,Hyper-V<b class='flag-5'>配置</b>:性能優(yōu)化與高級設(shè)置

    詳解Linux系統(tǒng)下IP和網(wǎng)關(guān)配置

    配置IP的目的使虛擬機可以聯(lián)網(wǎng)。
    的頭像 發(fā)表于 01-03 10:01 ?454次閱讀
    詳解Linux<b class='flag-5'>系統(tǒng)</b>下IP和網(wǎng)關(guān)<b class='flag-5'>配置</b>

    DCS控制系統(tǒng)配置與實施流程

    DCS(分布式控制系統(tǒng))控制系統(tǒng)配置與實施流程是一個復(fù)雜但有序的過程,涉及多個步驟和環(huán)節(jié)。以下是一個典型的DCS控制系統(tǒng)配置與實施
    的頭像 發(fā)表于 12-27 16:47 ?489次閱讀

    EtherCAT轉(zhuǎn)ProfiNet網(wǎng)關(guān)配置指南:掌握核心配置要點

    的集成度與維護(hù)效率,促進(jìn)了工業(yè)自動領(lǐng)域的技術(shù)進(jìn)步。 ? 來百度APP暢享高清圖片 上位機軟件安裝與配置 1. 安裝軟件包 :首先安裝EtherCAT轉(zhuǎn)ProfiNet協(xié)議網(wǎng)關(guān)EtherCAT
    的頭像 發(fā)表于 11-14 15:54 ?285次閱讀
    EtherCAT轉(zhuǎn)ProfiNet網(wǎng)關(guān)<b class='flag-5'>配置</b>指南:掌握核心<b class='flag-5'>配置</b>要點

    EIO24088G-V2及EIO16084G的使用(一):TwinCAT總線配置與使用#正運動技術(shù)

    總線配置
    正運動技術(shù)
    發(fā)布于 :2024年11月12日 14:32:25

    固化FPGA配置芯片的方式

    每次在系統(tǒng)掉電之后,之前載入的程序?qū)G失,系統(tǒng)上電后需要重新配置。設(shè)計者為了彌補這項缺陷,在FPGA芯片的旁邊都會設(shè)置一個flash(掉電不丟失)。
    的頭像 發(fā)表于 10-24 18:13 ?473次閱讀
    固化FPGA<b class='flag-5'>配置</b>芯片的方式

    C2000系統(tǒng)配置應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《C2000系統(tǒng)配置應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 09-14 10:12 ?0次下載
    C2000<b class='flag-5'>系統(tǒng)配置</b>應(yīng)用說明

    陀螺儀LSM6DSV16X與AI集成(7)----FIFO數(shù)據(jù)讀取與配置

    LSM6DSV16X是一款高性能、低功耗的6軸IMU傳感器,集成了3軸加速度計和3軸陀螺儀。本文將詳細(xì)介紹如何配置和讀取LSM6DSV16X傳感器的FIFO數(shù)據(jù),包括初始配置以及數(shù)據(jù)處理的完整
    的頭像 發(fā)表于 07-18 10:40 ?1695次閱讀
    陀螺儀LSM6DSV16X與AI集成(7)----FIFO數(shù)據(jù)讀取與<b class='flag-5'>配置</b>

    下位機硬件選型與配置研究

    在工業(yè)自動、嵌入式系統(tǒng)以及物聯(lián)網(wǎng)等領(lǐng)域,下位機作為系統(tǒng)的執(zhí)行單元,其硬件的選型與配置直接關(guān)系到整個系統(tǒng)的性能、穩(wěn)定性和可靠性。因此,合理的
    的頭像 發(fā)表于 06-28 16:57 ?745次閱讀

    PLC冗余系統(tǒng)配置方式和工作原理

    在現(xiàn)代工業(yè)自動控制系統(tǒng)中,可編程邏輯控制器(PLC)的應(yīng)用已經(jīng)變得非常普遍。為了保障生產(chǎn)過程的連續(xù)性和系統(tǒng)的穩(wěn)定性,PLC冗余系統(tǒng)作為一種重要的技術(shù)手段,得到了廣泛的關(guān)注和應(yīng)用。本文
    的頭像 發(fā)表于 06-19 10:42 ?3160次閱讀

    ubuntu固定ip怎么配置

    在Ubuntu系統(tǒng)配置固定IP地址通常涉及編輯網(wǎng)絡(luò)配置文件。以下是配置固定IP地址的步驟: 1、打開終端:可以通過快捷鍵Ctrl + Alt + T打開終端。 2、確定網(wǎng)絡(luò)接口名稱:
    的頭像 發(fā)表于 06-03 17:26 ?3939次閱讀

    WiFi模塊網(wǎng)絡(luò)配置基本設(shè)置

    網(wǎng)絡(luò)很簡單,但是需要串口輸入,一般需要在單片機系統(tǒng)上提供一個人機交互接口。 ? ? ? ?2、微信Air-Kiss網(wǎng)絡(luò)配置 ? ? ? ?A.Wi-Fi模塊只能對連接上互聯(lián)網(wǎng)的路由器進(jìn)行配網(wǎng)。 ? ? ? ?沒有聯(lián)網(wǎng)的局域網(wǎng)路由器無法通過微信Air-Kiss
    的頭像 發(fā)表于 05-31 10:32 ?752次閱讀

    TSMaster VLAN配置方法

    ,以太網(wǎng)目錄Catalog1.VLAN的配置方法2.TCP/IP通訊帶VLAN測試1.TSMaster配置VLANVLAN配置流程如下:1)VLAN
    的頭像 發(fā)表于 05-18 08:21 ?553次閱讀
    TSMaster VLAN<b class='flag-5'>配置</b>方法

    制藥行業(yè)新突破:CANOpen轉(zhuǎn)PROFINET網(wǎng)關(guān)配置案例解析

    流程:首先安裝CanOpen轉(zhuǎn)Profinet網(wǎng)關(guān)的配置軟件,該軟件為專用工具,確保了設(shè)備參數(shù)的正確設(shè)置與修改。隨后,需導(dǎo)入EDS(設(shè)備描述文件)至配置軟件中。E
    的頭像 發(fā)表于 05-14 11:47 ?601次閱讀
    制藥行業(yè)新突破:CANOpen轉(zhuǎn)PROFINET網(wǎng)關(guān)<b class='flag-5'>配置</b>案例解析

    MCU單片機GPIO初始該按什么順序配置?為什么初始化時有電平跳變?

    GPIO初始化時有時鐘配置、模式配置、輸出配置、復(fù)用配置,那么在編寫初始代碼時,到底該按什么順序執(zhí)行呢?如果順序不當(dāng)那初始
    的頭像 發(fā)表于 02-22 11:07 ?1687次閱讀
    MCU單片機GPIO初始<b class='flag-5'>化</b>該按什么順序<b class='flag-5'>配置</b>?為什么初始化時有電平跳變?
    主站蜘蛛池模板: 日本免费黄色大片 | 99久久99这里只有免费费精品 | 日韩在线视频免费观看 | 免费一级毛片在线播放不收费 | 成人午夜性a一级毛片美女 成人午夜性视频欧美成人 成人小视频在线 | 精品国产第一国产综合精品gif | 福利片在线观看免费高清 | 精品福利在线视频 | 五月婷婷一区 | 国产秦先生大战白丝97在线 | aaa在线观看 | 狠狠色综合久久久久尤物 | 天堂中文在线免费观看 | 日本高清视频色wwwwww色 | 日本黄色大片网站 | 手机亚洲第1页 | 天堂资源在线www中文 | 婷婷99精品国产97久久综合 | 加勒比在线免费视频 | 黄网在线观看免费 | 性色网址 | 欧美一区二区三区免费看 | 日本久久久 | 一区二区三区四区在线视频 | 久青草免费在线视频 | 中文字幕成人乱码在线电影 | 黄色在线播放视频 | 在线精品91青草国产在线观看 | 在线观看一二三区 | 手机看片免费永久在线观看 | 在线日本人观看成本人视频 | 色日本视频 | aa黄色片| 亚洲韩国日本欧美一区二区三区 | 日本黄视频在线播放 | 男女爱爱是免费看 | 成年大片免费播放视频人 | 99热网址| 高清激情小视频在线观看 | 香蕉久久久久久狠狠色 | 一区二区精品 |