哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

EXCEL導入—設計與思考

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2025-08-20 16:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

EXCEL導入—設計與思考

一、案例信息與設計

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é)果。

?

wKgZO2iljcSADVFTAADJIwuc8jo791.jpg

??

1.2.2、方案二(改進版)

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

基于原有的方案,該方案使用了線程池來校驗數(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)一均異步處理。

wKgZPGiljcSAZWohAAK6A6lTxEE472.jpg

??

?

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è)務。(避免對單個容器造成較大壓力)

wKgZO2iljcWAZtL7AAISNa1Nvzc472.jpg

??

?

1.2.4、方案四(理想版)

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

?

wKgZPGiljcaAEBkuAAKCB17DGjQ355.jpg

??

?

二、持續(xù)思考

2.1 中間件的合理使用

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

同時,異步處理可能存在結(jié)果丟失的情況,在數(shù)據(jù)可靠性要求不高的場景可以合理舍棄這種小概率場景發(fā)生的問題(因為有重試還一直失?。?strong>但在數(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ù)設計時,不要只是照葫蘆畫瓢,要結(jié)合自己的業(yè)務場景、業(yè)務數(shù)據(jù)量、可靠性要求等場景充分考慮,借鑒其他方案的可用之處。

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

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

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    114

    瀏覽量

    12285
  • Excel
    +關(guān)注

    關(guān)注

    4

    文章

    231

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如何快速導入keil的pack?

    在中國內(nèi)網(wǎng)下通過keil下載它所支持的軟件包是非常慢的, 甚至下載一天都下載不下來,下面介紹一種快速的方式(半小時內(nèi))下載并導入。 step 1 : 在瀏覽器中輸入https
    發(fā)表于 01-16 07:01

    勤哲Excel服務器:移動辦公的革新利器,顯著提升企業(yè)協(xié)作效率

    隨著手機、平板等移動設備的普及,眾多企業(yè)開始逐步進入移動辦公時代——在任何時間、任何地點,都可以高效處理工作,完全打破傳統(tǒng)固定辦公地點束縛,讓工作更自由、協(xié)作更無界。 作為全球Excel服務器品類
    的頭像 發(fā)表于 12-16 15:58 ?607次閱讀

    rt-thread studio 導入BSP 失敗怎么解決?

    rt-thread studio 手動導入bsp 失敗。 版本: 2.2.8 構(gòu)建ID: 202405200930 導入的bsp 是直接從rt-thread 代碼倉庫下載的 .log
    發(fā)表于 10-11 11:07

    騰訊地圖在AI時代的全新思考與實踐

    9月17日,在2025騰訊全球數(shù)字生態(tài)大會地圖專場上,騰訊集團副總裁、騰訊智慧出行總裁鐘翔平分享了騰訊地圖在AI時代的全新思考與實踐。
    的頭像 發(fā)表于 09-18 10:32 ?993次閱讀

    如何將GCC項目導入NuEclipse?

    如何將GCC項目導入NuEclipse?
    發(fā)表于 09-01 07:04

    KiCad 已支持導入 Altium 工程(Project)

    “ ?9.0.3 的小版本更新中增加一個非常實用的功能:直接導入 Altium 的工程,省去了分別導入原理圖和 PCB 的麻煩。? ” ? Altium 導入器 從 ?8.0 開始,KiCad
    的頭像 發(fā)表于 07-21 11:15 ?3543次閱讀
    KiCad 已支持<b class='flag-5'>導入</b> Altium 工程(Project)

    樹莓派用戶必備的五大微軟Excel替代軟件!

    微軟Excel通常是處理XLS、XLSX或CSV等電子表格時首先考慮的工具。然而,由于它對ARM處理器和Linux操作系統(tǒng)缺乏原生支持,在樹莓派上使用微軟Excel頗具挑戰(zhàn)性。但這并不意味著沒有好
    的頭像 發(fā)表于 07-17 17:17 ?1090次閱讀
    樹莓派用戶必備的五大微軟<b class='flag-5'>Excel</b>替代軟件!

    Allegro Skill工藝輔助之導入疊層模板

    在PCB設計中,導入疊層模板能夠確保設計的標準化和規(guī)范化,避免因手動設置疊層參數(shù)而可能出現(xiàn)的錯誤或不一致情況。
    的頭像 發(fā)表于 07-10 17:10 ?3406次閱讀
    Allegro Skill工藝輔助之<b class='flag-5'>導入</b>疊層模板

    使用Word/Excel管理需求的10個痛點及解決方案Perforce ALM

    還在用Word/Excel做需求管理?10個“翻車信號”,都是小伙伴們踩過的坑~來看看你踩過哪些?是不是也該升級到更專業(yè)的ALM工具了~
    的頭像 發(fā)表于 07-10 15:59 ?754次閱讀
    使用Word/<b class='flag-5'>Excel</b>管理需求的10個痛點及解決方案Perforce ALM

    Allegro Skill字符功能之導入LOGO

    在完成PCB設計之后,常常會遇到需要在PCB板上展示公司標志或者導入設計中需要的logo圖片的情況。為了滿足這一需求,F(xiàn)anySkill特別提供了“導入LOGO”這一便捷功能。通過這個功能,用戶可以輕松地將logo圖片放置到PCB設計中,從而快速實現(xiàn)將公司標識或其他設計元
    的頭像 發(fā)表于 07-07 17:05 ?2178次閱讀
    Allegro Skill字符功能之<b class='flag-5'>導入</b>LOGO

    如何導出Excel文件 -- excel_hm介紹 ##三方SDK##

    導出的三方庫吧 首先要思考一下原理:excel并不像html網(wǎng)頁或者txt文件一樣,可以通過直接編輯內(nèi)容指定一個文件格式來生成文件,如果我們對一個excel文件右鍵通過記事本打開的話,你會發(fā)現(xiàn)一堆亂碼
    發(fā)表于 06-30 17:57

    Simcenter FLOEFD EDA Bridge模塊:使用導入的詳細PCB設計和IC熱特性來簡化熱分析

    優(yōu)勢使用導入的詳細PCB設計和集成電路熱特性進行分析,省時省力將詳細的PCB數(shù)據(jù)快速導入SimcenterFLOEFD通過更詳細的電子設備熱建模提高分析精度摘要SimcenterFLOEFD軟件
    的頭像 發(fā)表于 06-10 17:36 ?1995次閱讀
    Simcenter FLOEFD EDA Bridge模塊:使用<b class='flag-5'>導入</b>的詳細PCB設計和IC熱特性來簡化熱分析

    VirtualLab Fusion應用:振幅型SLM圖片的導入

    1.打開File→Import→Import Image File 2.選擇圖片格式的文件,點擊打開 3.選擇導入的類型為Harmonic Filed: 4.選擇目標圖片的顯示顏色,一般保持
    發(fā)表于 06-03 08:49

    EZ USB Suite導入官方例程報錯是怎么回事?

    導入官網(wǎng)固件工程報錯,如下圖,添加了路徑也不行,不知道咋回事,具體應該導入哪些頭文件,在哪個位置
    發(fā)表于 05-20 08:22

    CoT 數(shù)據(jù)集如何讓大模型學會一步一步思考?

    目前,大模型的回答路徑基本遵循 input-output 的方式,在面對復雜任務時表現(xiàn)不佳。反之,人類會遵循一套有條理的思維流程,逐步推理得出正確答案。這種差異促使人們深入思考:如何才能讓大模型“智能涌現(xiàn)”,學會像人類一樣“一步一步思考”?
    的頭像 發(fā)表于 04-24 16:51 ?1531次閱讀
    CoT 數(shù)據(jù)集如何讓大模型學會一步一步<b class='flag-5'>思考</b>?
    正镶白旗| 赤壁市| 漠河县| 桦南县| 双江| 越西县| 泰和县| 治多县| 湘潭市| 五大连池市| 宁安市| 澄迈县| 大同市| 鹿邑县| 吴忠市| 北安市| 和平县| 班戈县| 清徐县| 安化县| 祥云县| 赤峰市| 德兴市| 南川市| 图木舒克市| 岳阳市| 开阳县| 延边| 陈巴尔虎旗| 醴陵市| 琼海市| 堆龙德庆县| 图片| 阳城县| 满洲里市| 菏泽市| 郓城县| 梅州市| 鹤山市| 化州市| 驻马店市|