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

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

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

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

EXCEL導入—設(shè)計與思考

京東云 ? 來源:京東物流 葉方偉 ? 作者:京東物流 葉方偉 ? 2024-11-20 10:40 ? 次閱讀

作者:京東物流 葉方偉

EXCEL導入—設(shè)計與思考

一、案例信息與設(shè)計

1.1、案例需求與背景

B2BTC同城二期有一個Excel導入的功能,單次數(shù)據(jù)量小于一千,使用頻次不高。但涉及到多個字段組成唯一約束,即每條數(shù)據(jù)操作時要根據(jù)唯一性組合字段來操作,要確保數(shù)據(jù)表中的數(shù)據(jù)不違反唯一性。

每條數(shù)據(jù)涉及到多次查詢其他業(yè)務RPC來校驗、補充信息的訴求,即使有緩存,但也可能涉及到緩存不命中問題,即單條數(shù)據(jù)的校驗和導入的時效性保障不了。

1.2、整體解決方案

以下四個方案為開發(fā)過程中依次思考的四個方案,沒有絕對利弊。

1.2.1、初始構(gòu)思開發(fā)方案(同步導入)

首先想到的方案為常用的同步導入,即在一臺容器的一個線程中完成Excel中數(shù)據(jù)的解析、校驗、導入、發(fā)送通知消息三部分流程。

問題:

1.當數(shù)據(jù)量過大時,在單臺服務器上操作時對服務器造成比較大的內(nèi)存壓力。

2.流程比較長,每條數(shù)據(jù)涉及多次RPC查詢,總體時間很長。接口TP99會比較高 + 用戶體驗很差。

優(yōu)點:

1.可以讓前端同步獲取導入結(jié)果。

1.2.2、方案二(改進版)

由于方案一時效不可控制,在參考了另外一個Excel導入場景后設(shè)計了以下方案:

基于原有的方案,該方案使用了線程池來校驗數(shù)據(jù)并通過MQ來異步地處理每條數(shù)據(jù),這樣基于原有的方案有一定的效率提升。

但由于當時思考不充分,開發(fā)完成之后發(fā)現(xiàn)和實際場景不適配,并可能有TP99超時風險,只作為記錄。

問題:

1.業(yè)務可以結(jié)束完全的異步,所有的導入結(jié)果都通過。

優(yōu)點:

1.可以讓前端同步獲取校驗結(jié)果。

2.線程池和異步處理一定程度上提升了數(shù)據(jù)處理效率。

適用場景:

本方案適用于前端需要同步獲取導入的結(jié)果,后端不涉及唯一性校驗(有單號等唯一主鍵信息)的場景,可以校驗數(shù)據(jù)之后進行批量插入(不用MQ來發(fā)消息異步處理數(shù)據(jù))。

方案本身沒有什么問題,問題在于方案和引用場景不是最佳適配:本次導入不要求前端能即時獲取到導入的結(jié)果,因此無需在這里同步獲取到結(jié)果之后再異步處理數(shù)據(jù),可以將 excel解析 + 數(shù)據(jù)校驗 + 處理消息統(tǒng)一均異步處理。

1.2.3、方案三(最終版)

由于業(yè)務方?jīng)]有同步獲取導入結(jié)果或者校驗結(jié)果的任何訴求,因此這里將 excel解析 + 數(shù)據(jù)校驗 + 處理消息統(tǒng)一均異步處理(JMQ發(fā)消息給消費者來處理這些流程),只對必要的參數(shù)進行校驗。

對于數(shù)據(jù)處理,將Excel數(shù)據(jù)拆分為每條的粒度,用 線程池來進行 數(shù)據(jù)校驗并處理,最終由主線程統(tǒng)計結(jié)果。

此外,在進行數(shù)據(jù) 查詢唯一性數(shù)據(jù) + 操作數(shù)據(jù)(增加刪除修改) 的最小并發(fā)影響粒度加上Redis鎖來保障數(shù)據(jù)表的唯一性不會被破壞。

問題:

1.所有的 excel解析 + 數(shù)據(jù)校驗 + 處理消息 均在一臺服務器上執(zhí)行,對服務器的壓力會比較大。

優(yōu)點:

1.用線程池處理消息,大大縮短了消息處理的時間,減少了單個服務器壓力。

2.有兜底策略,可確保數(shù)據(jù)不丟失,導入流程可以正常且按時結(jié)束,不會無上限等待。

3.除必要校驗的所有流程均異步處理,接口的TP99可靠且較快。

適用場景:

1.對數(shù)據(jù)完整性要求比較的業(yè)務。

2.數(shù)據(jù)量不會太大的業(yè)務。(避免對單個容器造成較大壓力)

1.2.4、方案四(理想版)

對于方案三,將所有的數(shù)據(jù)校驗 + 處理的流程都給一臺服務器執(zhí)行,造成單臺服務器壓力比較大,且并發(fā)度不夠高,總體流程時效性可能得不到保障。因此設(shè)想了一個較為理想的方案四場景,適用于數(shù)據(jù)量大、對數(shù)據(jù)可靠性要求不高、時效性要求高的場景。

相比方案三,方案四減少了對應的對賬、兜底機制,整體的流程還是異步進行。相比于線程池,用 JMQ 發(fā)送消息給 數(shù)據(jù)校驗并處理的consumer來處理消息并記錄結(jié)果到Redis來跟蹤導入進度。此外,在進行數(shù)據(jù) 查詢唯一性數(shù)據(jù) + 操作數(shù)據(jù)(增加刪除修改)+ 更新Redis中最終結(jié)果 的最小并發(fā)影響粒度加上Redis鎖來保障數(shù)據(jù)表的唯一性不會被破壞。

問題:

1.沒有兜底策略,數(shù)據(jù)校驗處理的流程中可能出現(xiàn)有一條消息阻塞丟失意外結(jié)束,導致最終沒有線程統(tǒng)計結(jié)果并發(fā)送咚咚消息。

優(yōu)點:

1.除必要校驗的所有流程均異步處理,接口的TP99可靠且較快。

2.利用拆分導入數(shù)據(jù) + 多個Consumer處理消息,大大縮短了消息處理的時間。

3.拆分數(shù)據(jù)為消息異步處理,用了JMQ的重試機制來提升了數(shù)據(jù)處理的可靠性。

適用場景:

1.本方案適用于前端無需同步獲取導入的結(jié)果,后端可以完全異步處理數(shù)據(jù)的場景。

2.對數(shù)據(jù)可靠性要求不是極高的業(yè)務,可接受小概率容錯。

3.對導入結(jié)果失效有一定訴求的業(yè)務。

4.數(shù)據(jù)量比較大或操作比較頻繁的業(yè)務。

二、持續(xù)思考

2.1 中間件的合理使用

合理利用JMQ來解耦、拆分業(yè)務邏輯可以減少單臺服務器實例內(nèi)存或CPU的壓力、提高數(shù)據(jù)處理并發(fā)量,同時可以利用MQ的重試機制來盡可能保障對應業(yè)務的可用性。

同時,異步處理可能存在結(jié)果丟失的情況,在數(shù)據(jù)可靠性要求不高的場景可以合理舍棄這種小概率場景發(fā)生的問題(因為有重試還一直失敗)。但在數(shù)據(jù)可靠性要求比較高的場景,需要有對應的對賬機制 + 兜底機制來統(tǒng)計數(shù)據(jù)的處理情況。(如Excel導入,可以將解析完成的數(shù)據(jù) 和 最終導入的數(shù)據(jù)進行一個數(shù)據(jù)對賬,如果有數(shù)據(jù)丟失或者無響應,發(fā)出告警,讓定時任務 或 人工進行二次核驗來確保數(shù)據(jù)可靠不丟失)

但中間件的過度使用使得服務過度依賴中間件的可靠性,問題追蹤定位難度會進一步加大,需要結(jié)合實際業(yè)務場景綜合權(quán)衡。

2.2 業(yè)務充分適配場景

在進行方案的技術(shù)設(shè)計時,不要只是照葫蘆畫瓢,要結(jié)合自己的業(yè)務場景、業(yè)務數(shù)據(jù)量、可靠性要求等場景充分考慮,借鑒其他方案的可用之處。

如本文檔中方案二借鑒了之前的方案設(shè)計,但沒有考慮自己的業(yè)務場景是不是與其適配,沒有充分適配自己的實際業(yè)務,還可能引入新的問題。

沒有最好的技術(shù)方案,只有適配于當前業(yè)務場景的最佳方案。

審核編輯 黃宇

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

    關(guān)注

    8

    文章

    3083

    瀏覽量

    74606
  • Excel
    +關(guān)注

    關(guān)注

    4

    文章

    225

    瀏覽量

    55894
收藏 人收藏

    評論

    相關(guān)推薦

    在LabVIEW中導入導出Excel文件程序設(shè)計

    LabVIEW Report Generation工具包的基礎(chǔ)上,以示例方式描述了在LabVIEW開發(fā)環(huán)境中利用報表生成器函數(shù),實現(xiàn)導入Excel文件和導出Excel文件的方法。經(jīng)應用證明上述方法簡單實用,讀者可以直接利用程序中
    發(fā)表于 10-25 14:58

    如何向LABVIEW導入MATLAB生成的EXCEL數(shù)據(jù)?

    各位高手大家好!我從前從來沒有接觸過LABVIEW,是因為畢業(yè)設(shè)計才開始學習的。我畢業(yè)設(shè)計導師的要求是,從MATLAB生成的EXCEL表格中導入短路波形的數(shù)據(jù),然后對數(shù)據(jù)進行形態(tài)學變換和小波變換后
    發(fā)表于 03-29 11:24

    哪位師傅有EXCEL導入labview表格的程序

    哪位師傅有EXCEL導入labview表格的程序,發(fā)給我一個,謝謝!lychdm@sohu.com
    發(fā)表于 11-06 14:50

    EXCEL導入后,表格能改動怎么做?

    各位高手,請教一下,我將EXCEL表格導入到LABVIEW后,還希望能改動導入后表格內(nèi)的數(shù)據(jù),該怎么做?請高手指點,謝謝!
    發(fā)表于 01-15 10:21

    labview關(guān)于怎么將excel表格數(shù)據(jù)導入的問題

    各位大神好(不好意思,問的不是這個問題),,,請問下,,當我用labview將excel表格中的2列數(shù)據(jù)讀入之后,怎么做可以使這2列數(shù)據(jù)從計算機的聲卡導入,謝謝如!果過程比較麻煩的話可以簡單說下步驟,非常感謝!
    發(fā)表于 01-17 22:43

    三維波形數(shù)據(jù)如何導入excel

    三維波形數(shù)據(jù)如何導入excel
    發(fā)表于 08-07 15:47

    excel模板做報表導入數(shù)組時出現(xiàn)這個問題怎么解決?謝謝

    excel模板做報表導入數(shù)組時出現(xiàn)這個問題怎么解決?謝謝
    發(fā)表于 10-27 11:09

    Excel教程】EXCEL表格讀取與寫入教程分享

    前期學習導入和讀取EXCEL表格走了很多彎路,發(fā)現(xiàn)論壇里面關(guān)于EXCEL資料很多,但是大多數(shù)都不利于新手了解,論壇里面有以下幾個問題:1、說的是EXCEL表格,但是實際是電子表格,操作
    發(fā)表于 06-11 17:44

    Excel的文件導入Labview。

    想把Excel文件里面的一串一維數(shù)組導入Labview。使用的是讀取電子表格VI,可是只能導入100個數(shù)字,請問有沒有其他方法或者程序可以實現(xiàn)。我的一維數(shù)組大概有10000個數(shù)字。
    發(fā)表于 09-25 10:19

    數(shù)據(jù)怎么導入excel表?

    將數(shù)據(jù)庫信息導入excel表格,以及excel導入數(shù)據(jù)庫
    發(fā)表于 11-08 09:23

    C#如何實現(xiàn)Excel表格導入數(shù)據(jù)庫

    C#實現(xiàn)Excel表格導入數(shù)據(jù)庫
    發(fā)表于 07-18 08:38

    CAD免費教程:如何將Excel數(shù)據(jù)快速導入CAD圖紙

    在平時的設(shè)計工作中,為了圖紙內(nèi)容的豐富性,通常會在里面添加一些元素,使得數(shù)據(jù)更加的完善,那我們想在CAD圖紙中添加一份Excel數(shù)據(jù)表,徒手繪制那就肯定是太過于麻煩了,那怎么才能省時省事呢?這個時候就用到了技巧的問題了,一步教你如何將Excel數(shù)據(jù)表快速
    發(fā)表于 09-05 08:00 ?9次下載
    CAD免費教程:如何將<b class='flag-5'>Excel</b>數(shù)據(jù)快速<b class='flag-5'>導入</b>CAD圖紙

    Excel的操作使用教程免費下載

    Excel操作 Microsoft.Office.Interop.Excel.dll的使用 先說說題外話,前段時間近一個月,我一直在做單據(jù)導入功能,其中就涉及到Excel操作,接觸
    發(fā)表于 05-21 08:00 ?70次下載
    <b class='flag-5'>Excel</b>的操作使用教程免費下載

    如何寫一個公用工具來進行Excel導入導出

    日常在做后臺系統(tǒng)的時候會很頻繁的遇到Excel導入導出的問題,正好這次在做一個后臺系統(tǒng),就想著寫一個公用工具來進行Excel導入導出。
    的頭像 發(fā)表于 10-09 14:19 ?1590次閱讀

    Excel XLSX電子表格導入ASP.NET Core中的TX文本控件和C#中的Windows窗體

    將電子表格導入文檔。Excel 文檔中包含的電子表格可以導入并轉(zhuǎn)換為“智能”表格,包括支持的公式、單元格編號格式設(shè)置和包含的格式。
    的頭像 發(fā)表于 03-30 09:54 ?1486次閱讀
    主站蜘蛛池模板: www天堂在线观看 | 中文字幕亚洲一区二区v@在线 | 22sihu国产精品视频影视资讯 | 在线欧美色 | 热久久久久久 | 欧洲精品不卡1卡2卡三卡四卡 | 91在线播放免费不卡无毒 | 夜夜操天天爽 | 可以免费观看的一级毛片 | 日本大片免费观看视频 | 欧美天堂在线视频 | 亚洲色图 第一页 | 国产精品视频久久久久久 | 亚洲国产成a人v在线观看 | 日韩精品一卡二卡三卡四卡2021 | 久久久久青草 | 播五月综合 | 性夜影院爽黄e爽在线观看 羞羞色院91精品网站 | 一区二区三区四区精品 | 天堂资源在线播放 | 午夜在线视频免费 | 又色又爽又黄视频 | 三级视频国产 | 国产精品永久免费自在线观看 | 欧美一级视频免费 | 老师办公室高h文小说 | 久久天天躁夜夜躁狠狠躁2015 | 四虎一区二区三区精品 | 日韩一级片免费看 | 欧美色频| 久久久久久夜精品精品免费啦 | 午夜dy888理论在线播放 | 国内黄色一级片 | 真实子伦视频不卡 | 亚洲伊人久久大香线蕉综合图片 | 婷婷毛片 | 国产一级爱c片免费播放 | 免费恐怖片 | 婷婷丁香四月 | 欧美xxxx性疯狂bbbb | 欧美私人网站 |