版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)
目錄
1.序言.................................................................................................1
2.如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)......................................................................1
2.1.整體架構(gòu)圖.....................................................................................1
2.2.邏輯架構(gòu).......................................................................................2
2.3.業(yè)務(wù)犯構(gòu).......................................................................................3
2.4.應(yīng)用架構(gòu).......................................................................................4
2.5.技術(shù)架構(gòu).......................................................................................5
2.6.數(shù)據(jù)架構(gòu).......................................................................................7
2.7.部署架構(gòu).......................................................................................8
2.8.功能架構(gòu).......................................................................................9
2.9.運(yùn)行架構(gòu)......................................................................................10
3.如何做一個(gè)好的大數(shù)據(jù)平臺(tái)架構(gòu).....................................................................11
3.1.Lambda架構(gòu)需求..............................................................................12
3.2.Lambda架構(gòu)的關(guān)鍵............................................................................12
3.2.1.橫向擴(kuò)容.................................................................................12
3.2.2.故障容4告.................................................................................13
3.2.3.低延遲....................................................................................13
3.2.4.可擴(kuò)展..................................................................................13
3.2.5.易維護(hù)....................................................................................13
3.3.Lambda架構(gòu)的分層.............................................................................13
1.序一
在我們做系統(tǒng)架構(gòu)設(shè)計(jì)時(shí),如何快速的向外界傳達(dá)我們的設(shè)計(jì)思路。4+1試圖適合我們厘清思
路、表達(dá)自己的想法。在我們匯報(bào),爭(zhēng)取領(lǐng)導(dǎo)層的認(rèn)同支持更適合用架構(gòu)圖來(lái)表述我們的觀點(diǎn)。架
構(gòu)圖包括總體架構(gòu)、邏輯架構(gòu)、應(yīng)用架構(gòu)、技術(shù)架構(gòu)、數(shù)據(jù)架構(gòu)、功能架構(gòu)、網(wǎng)絡(luò)架構(gòu)、運(yùn)行架構(gòu)
寸箋箋守O
2.如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)
2.1.整體架構(gòu)圖
第1頁(yè)共16頁(yè)
總體架構(gòu)基本上把下面所有的架構(gòu)都體現(xiàn)了。下面所有的架構(gòu)也都是要與總體架構(gòu)保持一致。
總體架構(gòu)需要說(shuō)明幾件事情:
整個(gè)系統(tǒng)的硬件設(shè)置是怎么回事?
數(shù)據(jù)大概是從哪里來(lái),怎么采集、存儲(chǔ)、處理、交換的?
做了哪些功能抽象,以便于支撐上層的應(yīng)用?
提供哪些業(yè)務(wù)應(yīng)用?管理、控制等功能有哪些?
終端用戶怎么訪問(wèn)和使用這些應(yīng)用?
該系統(tǒng)與外部系統(tǒng)是怎么進(jìn)行對(duì)接的?
如何保障整個(gè)系統(tǒng)的安全、可靠、高質(zhì)量的建設(shè)?
圖1安防系統(tǒng)架構(gòu)圖
2.2.邏輯架構(gòu)
邏轉(zhuǎn)架構(gòu)就是整體架構(gòu)去掉各種保障、底層的硬件基礎(chǔ)等非軟件開(kāi)發(fā)邏輯核心的內(nèi)容。所以有
很多簡(jiǎn)單的項(xiàng)目壓根就不寫(xiě)邏輯架構(gòu),直接用總體架構(gòu)就行了。復(fù)雜的,就要把上面總體架構(gòu)中間
分層的邏輯給寫(xiě)清楚一些。
關(guān)注的是功能,包含用戶直接可見(jiàn)的功能,還有系統(tǒng)中隱含的功能。或者更加通俗來(lái)描述,邏
輯架構(gòu)更偏向我們?nèi)粘K斫獾摹胺謱印?,把一個(gè)項(xiàng)目分為“表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層”這樣
經(jīng)典的“三層架構(gòu)”。
邏輯架構(gòu)設(shè)計(jì)的目的就是為了告訴讀者,整個(gè)系統(tǒng)是怎么產(chǎn)生左右的。所謂的系統(tǒng)架構(gòu),主要
說(shuō)的就是這部分。早期的單體架構(gòu)、后面的各種分層架構(gòu)、微服務(wù)、服務(wù)網(wǎng)格等,說(shuō)的都是在這里
進(jìn)行設(shè)計(jì)。
第2頁(yè)共16頁(yè)
在設(shè)計(jì)的時(shí)候,會(huì)用到很多種設(shè)計(jì)模式,比如你看到有一個(gè)應(yīng)用支撐層/服務(wù)層之類的,這就
是做了一個(gè)MVC,把業(yè)務(wù)邏輯和用戶前端分離。而所有的邏輯架構(gòu)都有數(shù)據(jù)層,這是最早的
MVP,即數(shù)據(jù)、用戶視圖和處理邏輯分離。當(dāng)然,系統(tǒng)越復(fù)雜,架構(gòu)圖就越復(fù)雜。
圖2上汽通用B2C邏輯架構(gòu)
2.3.業(yè)務(wù)架構(gòu)
企業(yè)架構(gòu)框架白皮書(shū)中把架構(gòu)分為了四個(gè)層次,分別是業(yè)務(wù)、應(yīng)用、數(shù)據(jù)、技術(shù)。只有梳理清
楚了業(yè)務(wù),才能指導(dǎo)應(yīng)用、數(shù)據(jù)和技術(shù)架構(gòu)。業(yè)務(wù)架構(gòu)的分析過(guò)程是復(fù)雜的,最終的產(chǎn)出可能也不
僅僅只是一張架構(gòu)圖。還有更細(xì)節(jié)的流程、建模等產(chǎn)出物。一張好的架構(gòu)圖大概是:分層次、分模
塊講清楚了各個(gè)產(chǎn)品模塊之間的關(guān)系。
第3頁(yè)共16頁(yè)
,智魴中臺(tái)的業(yè)務(wù)架構(gòu)
數(shù)?門(mén)戶ETLIII
0提6力
業(yè)務(wù)效娓B志文忤
2.4.應(yīng)用架構(gòu)
就是應(yīng)用太豐富了,需要整理整理。內(nèi)部有哪些應(yīng)用,怎么對(duì)外部提供服務(wù)。很多項(xiàng)目都沒(méi)有
這個(gè),因?yàn)閼?yīng)用比較少,不值得多廢點(diǎn)人工單獨(dú)寫(xiě)。用以闡述細(xì)化邏輯架構(gòu)。
第4頁(yè)共16頁(yè)
運(yùn)管支律系統(tǒng)
辦公的日
一體化狠供
故字中臺(tái)
企業(yè)展到導(dǎo)技
大■露倉(cāng)庵
圖3互聯(lián)網(wǎng)醫(yī)院-應(yīng)用架構(gòu)
2.5.技術(shù)架構(gòu)
技術(shù)架構(gòu)要干啥也就很清楚了,就是每一層,我們都用什么組件、什么技術(shù)解決什么問(wèn)題。要
求是:精準(zhǔn)、明確、簡(jiǎn)練。但大體上的結(jié)構(gòu)是類似的,從最底層的存儲(chǔ),到最上層的接口。右邊是
一些通用的運(yùn)維體系或者支撐服務(wù)。體現(xiàn)出來(lái)依賴的SDK、第三方類庫(kù)、中間件。
第5頁(yè)共16頁(yè)
圖4云技術(shù)架構(gòu)
現(xiàn)在更多的情況,是多個(gè)系統(tǒng)模塊,組成一個(gè)大的分布式系統(tǒng),或者現(xiàn)存多個(gè)系統(tǒng)的情況下,
需要送行集成開(kāi)發(fā)一個(gè)產(chǎn)品。
這樣的話,技術(shù)架構(gòu),就是高層級(jí)的技術(shù)架構(gòu)了,不僅僅體現(xiàn)的是技術(shù)組件了,而是更高層級(jí)
的一些模塊,甚至規(guī)范。
第6頁(yè)共16頁(yè)
云計(jì)算云基礎(chǔ)設(shè)倍廢用化彈性侵源……
----------------------------------------------------否嘀
圖2螞蟻集團(tuán)分布式金融核心套件bPaaS中臺(tái)技術(shù)架構(gòu)圖
2.6.數(shù)據(jù)架構(gòu)
數(shù)據(jù)架構(gòu)其實(shí)就是從數(shù)據(jù)側(cè)描述數(shù)據(jù)怎么來(lái)、怎么存、怎么加工、怎么使用。從數(shù)據(jù)源開(kāi)始,
數(shù)據(jù)通過(guò)哪些方式集成過(guò)來(lái);集成到數(shù)倉(cāng)之后,都存在哪里,數(shù)倉(cāng)怎么分層,每一層都干啥;在數(shù)
據(jù)集市中又怎么存、怎么管;到數(shù)據(jù)應(yīng)用層又提供哪些應(yīng)用。上面所有的一切,都用什么技術(shù),什
么組件,解決什么問(wèn)題。系統(tǒng)需要什么樣的數(shù)據(jù)、如何存儲(chǔ)、如何進(jìn)行數(shù)據(jù)架構(gòu)設(shè)計(jì)。
第7頁(yè)共16頁(yè)
2.7.部署架構(gòu)
部署架構(gòu)也叫網(wǎng)絡(luò)架構(gòu),就是底層服務(wù)器、網(wǎng)路的設(shè)計(jì),提供網(wǎng)絡(luò)安全、服務(wù)可靠性的設(shè)計(jì)。
再簡(jiǎn)單一些理解,就是你這些應(yīng)用、數(shù)據(jù)庫(kù)都放在那臺(tái)服務(wù)器上,這些服務(wù)器都在哪個(gè)ip端,怎么
進(jìn)行訪問(wèn)。要具體體現(xiàn):機(jī)房;服務(wù)器個(gè)數(shù)、配置;網(wǎng)絡(luò)分區(qū)關(guān)系;體現(xiàn)數(shù)據(jù)庫(kù)、高可用;體現(xiàn)負(fù)
載均衡;
第8頁(yè)共16頁(yè)
就是前臺(tái)頁(yè)面的功能菜單的目錄結(jié)構(gòu)。你怎么組織系統(tǒng)的所有功能,給用戶提供相應(yīng)的服務(wù)。
第9頁(yè)共16頁(yè)
支付系統(tǒng)功能架構(gòu)圖
ftNR*|AP川r]|]|ICE]]■痂;3I
圖5支付系統(tǒng)架構(gòu)
2.9.運(yùn)行架構(gòu)
運(yùn)行架構(gòu)其實(shí)就是軟件內(nèi)部,這些系統(tǒng)內(nèi)部是怎么運(yùn)轉(zhuǎn)的,一般會(huì)畫(huà)很多時(shí)序圖、狀態(tài)圖、活
動(dòng)圖。-?般不單獨(dú)畫(huà)--個(gè)運(yùn)行架構(gòu),而是在概要和詳細(xì)設(shè)計(jì)里畫(huà)。
第10頁(yè)共16頁(yè)
Internet
練31TGR
■too?:費(fèi),.q?*,
3:M-??*?-?e?wa-?a?<a
*31逢
3.如何做一個(gè)好的大數(shù)據(jù)平臺(tái)架構(gòu)
2012年Storm的作者NathanMarz提出的Lambda數(shù)據(jù)處理框架。Lambda架構(gòu)的目標(biāo)是設(shè)計(jì)
出一個(gè)能滿足實(shí)時(shí)大數(shù)據(jù)系統(tǒng)關(guān)健特性的架構(gòu),包括有:高容錯(cuò)、低延時(shí)和可擴(kuò)展等。本文詳細(xì)的
第11頁(yè)共16頁(yè)
講述了Lambda架構(gòu)的需求、關(guān)鍵以及分層。
3.1.Lambda架構(gòu)需求
Lambda架構(gòu)背后的需求是由于MR架構(gòu)的延遲問(wèn)題。MR雖然實(shí)現(xiàn)了分布式、可擴(kuò)展數(shù)據(jù)處理
系統(tǒng)的目的,但是在處理數(shù)據(jù)時(shí)延遲比較嚴(yán)重。實(shí)際上如果內(nèi)存和CPU足夠強(qiáng)大,MR也可以實(shí)現(xiàn)
近實(shí)時(shí)運(yùn)算,但實(shí)際業(yè)務(wù)環(huán)境并非如此,因此我們需要權(quán)衡,選擇實(shí)時(shí)處理和批處理所需要數(shù)據(jù)量
和恰當(dāng)?shù)馁Y源。
2012年Storm的作者NathanMarz提出的Lambda數(shù)據(jù)處理框架。Lambda架構(gòu)的目標(biāo)是設(shè)計(jì)
出一個(gè)能滿足實(shí)時(shí)大數(shù)據(jù)系統(tǒng)關(guān)健特性的架構(gòu),包括有:高容錯(cuò)、低延時(shí)和可擴(kuò)展等。Lambda架
構(gòu)整合離線計(jì)算和實(shí)時(shí)計(jì)算,融合不可變性(Immunability),讀寫(xiě)分離和復(fù)雜性隔離等一系列架
構(gòu)原則,可集成Hadoop,Kafka,Storm,Spark,Hbase等各類大數(shù)據(jù)組件。
3.2.Lambda架構(gòu)的關(guān)鍵
3.2.1.橫向擴(kuò)容
可擴(kuò)展性意味著為滿足日益增長(zhǎng)的用戶服務(wù)需求,同時(shí)不用對(duì)底層架構(gòu)或者代碼,可以通過(guò)現(xiàn)
有機(jī)器添加內(nèi)存或者磁盤(pán)資源來(lái)實(shí)現(xiàn)(垂直擴(kuò)展),或者可以通過(guò)在集群中添加機(jī)器實(shí)現(xiàn)(水平擴(kuò)
展)。無(wú)論是實(shí)時(shí)或者批處理,都應(yīng)該能夠不停服務(wù)的情況下,可以實(shí)施水平擴(kuò)展。
第12頁(yè)共16頁(yè)
3.2.2.故障容錯(cuò)
系統(tǒng)需要妥善處理故障,確保系統(tǒng)在某些組件發(fā)生故障的情況下,整個(gè)系統(tǒng)服務(wù)的可用性???/p>
能部分組件故障會(huì)導(dǎo)致集群中部分節(jié)點(diǎn)宕機(jī),影響了整理的SLA,但是系統(tǒng)還是可以相應(yīng)的,系統(tǒng)
不能有單點(diǎn)故障。
3.2.3,低延遲
很多應(yīng)用對(duì)于讀和寫(xiě)操作的延時(shí)要求非常高,要求對(duì)更新和查詢的響應(yīng)是低延時(shí)的。
3.2.4.可擴(kuò)展
系統(tǒng)需要足夠靈活,能夠?qū)崿F(xiàn)新增和修改需求,乂不需要重構(gòu)整個(gè)系統(tǒng)。實(shí)時(shí)處理和批處理隔
離開(kāi),能夠靈活修改需求。
3.2.5.易維護(hù)
開(kāi)發(fā)部署不能夠太復(fù)雜。
3.3.Lambda架構(gòu)的分層
在Lambda架構(gòu)中新數(shù)據(jù)到之時(shí),會(huì)被同時(shí)分派到批史理層和快速處理層。一旦數(shù)據(jù)到達(dá)批處
理層,按照常規(guī)批處理時(shí)間間隔,每次都從頭開(kāi)始重新計(jì)算并生成批處理視圖。類似地,只要新數(shù)
據(jù)到達(dá)快速處理層,快速處理層就會(huì)使用新數(shù)據(jù)生成快速視圖。在查詢到達(dá)服務(wù)層時(shí),它會(huì)合并快
第13頁(yè)共16頁(yè)
速視圖和批處理視圖來(lái)生成適當(dāng)?shù)牟樵兘Y(jié)果。生成批處理視圖后,快速視圖將被丟棄,除非有新數(shù)
據(jù)抵達(dá),否則只需要查詢批處理視圖,因?yàn)榇藭r(shí)批處理層中擁有所有的數(shù)據(jù)。
Lambda架構(gòu)定義主要層以及每個(gè)組件之間的集成。注意分為以下層:
數(shù)據(jù)源
數(shù)據(jù)源指外部的數(shù)據(jù)庫(kù)、消息隊(duì)列、文件等,可以開(kāi)發(fā)數(shù)據(jù)消費(fèi)層,隱臧來(lái)自不同訪問(wèn)數(shù)據(jù)的
復(fù)雜性,定義好數(shù)據(jù)格式。
數(shù)據(jù)消費(fèi)層
負(fù)責(zé)封裝不能數(shù)據(jù)源獲取數(shù)據(jù)的復(fù)雜性,將其轉(zhuǎn)換可由批處理或者流處理進(jìn)一步使用同一的格
式進(jìn)行消費(fèi)。
批處理層
這是Lambda架構(gòu)核心層之一,批處理接受數(shù)據(jù),持久化到用戶定義好的數(shù)據(jù)結(jié)構(gòu)中,維護(hù)著
主數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)一般不做改變,只是追加數(shù)據(jù)。批處理還負(fù)責(zé)創(chuàng)建和維護(hù)批處理視圖。比如我們
常做的HiveETL,統(tǒng)計(jì)一些數(shù)據(jù),最后將結(jié)果保存在hive表中,或者數(shù)據(jù)庫(kù)中,就屬于批處理層。
實(shí)時(shí)層
這是Lambda另一個(gè)核心層,批處理在很多場(chǎng)景下能夠滿足需求,但是隨著業(yè)務(wù)需求“苛刻
性”,他們希望能夠及時(shí)看到數(shù)據(jù),而不是等到第二天才看指標(biāo)變化和分析結(jié)果。所以引入了實(shí)時(shí)
處理。實(shí)時(shí)層解決了一個(gè)問(wèn)題,卻只存儲(chǔ)可立即向用戶提供的一組數(shù)據(jù),這樣就不需要對(duì)全量數(shù)據(jù)
進(jìn)行處理,大大提供處理效率。比如流處理僅僅存儲(chǔ)最近5分鐘的數(shù)據(jù),處理計(jì)算并形成結(jié)果,這
就是我們用sparkstreaming中要有的時(shí)間窗口。
服務(wù)層
這是Lambda架構(gòu)的最后一層,服務(wù)層的職責(zé)是獲取批處理和流處理的結(jié)果,向用戶提供統(tǒng)一
查詢視圖服務(wù)。
第14頁(yè)共16頁(yè)
移動(dòng)AppWeb瀏覽器
應(yīng)用服務(wù)制
數(shù)
據(jù)
采
數(shù)據(jù)瘴打點(diǎn)果集爬蟲(chóng)系統(tǒng)
數(shù)痛同步系統(tǒng)(數(shù)據(jù)導(dǎo)入)
批量數(shù)提同步實(shí)時(shí)數(shù)據(jù)同羅
散芟
據(jù)
大數(shù)據(jù)計(jì)算實(shí)時(shí)流式大數(shù)據(jù)處理
處大數(shù)據(jù)存儲(chǔ)
(MapReduce,(Storm,Spark
理(HDFS)
Spark,Hive)Streaming)
理
系
m
數(shù)
據(jù)
箍
出
與
展
示
Lambda數(shù)據(jù)架構(gòu)曾經(jīng)成為每一個(gè)公司大數(shù)據(jù)平臺(tái)必備的架構(gòu),它解決了一個(gè)公司大數(shù)據(jù)批量
離線處理和實(shí)時(shí)數(shù)據(jù)處理的需求,
數(shù)據(jù)從底層的數(shù)據(jù)源開(kāi)始,經(jīng)過(guò)各種各樣的格式進(jìn)入大數(shù)據(jù)平臺(tái),在大數(shù)據(jù)平臺(tái)中經(jīng)過(guò)
Kafka.Flume等數(shù)據(jù)組件進(jìn)行收集,然后分成兩條線進(jìn)行計(jì)算。一條線是進(jìn)入流式計(jì)算平臺(tái)(例如
Storm、Flink或者SparkStreaming),去計(jì)算實(shí)時(shí)的一些指標(biāo);另一條線進(jìn)入批量數(shù)據(jù)處理離線計(jì)
算平臺(tái)(例如Mapreduce、Hive,Spark
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 烏魯木齊銀行2025年秋季招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 2025-2030中國(guó)線性α-烯烴行業(yè)供需現(xiàn)狀及投資可行性專項(xiàng)調(diào)研研究報(bào)告
- 2026年首都醫(yī)科大學(xué)國(guó)家醫(yī)療保障研究院人員招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 機(jī)關(guān)干部職工培訓(xùn)課件
- 2025至2030中國(guó)汽車零部件產(chǎn)業(yè)發(fā)展現(xiàn)狀及未來(lái)趨勢(shì)研究報(bào)告
- 2025至2030中國(guó)光伏發(fā)電產(chǎn)業(yè)鏈成本效益與政策導(dǎo)向深度分析報(bào)告
- 老年人住院護(hù)理中的患者安全
- 2026年武漢市公安局蔡甸區(qū)分局招聘警務(wù)輔助人員43人備考題庫(kù)帶答案詳解
- 2026年長(zhǎng)沙市天心區(qū)教育局白沙幼教麗發(fā)新城幼兒園教職工招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 2026年西昌市黃聯(lián)關(guān)鎮(zhèn)人民政府公開(kāi)招聘9名綜合應(yīng)急救援隊(duì)伍人員備考題庫(kù)及答案詳解1套
- 2025年安全生產(chǎn)事故年度綜合分析報(bào)告
- 2026年1月福建廈門(mén)市集美區(qū)后溪鎮(zhèn)衛(wèi)生院補(bǔ)充編外人員招聘16人考試參考試題及答案解析
- 2026年腹腔鏡縫合技術(shù)培訓(xùn)
- 2026年廣西貴港市華盛集團(tuán)新橋農(nóng)工商有限責(zé)任公司招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 地鐵安檢施工方案(3篇)
- 小學(xué)生寒假心理健康安全教育
- 汽機(jī)專業(yè)安全培訓(xùn)課件
- 2026高考藍(lán)皮書(shū)高考關(guān)鍵能力培養(yǎng)與應(yīng)用1.批判性與創(chuàng)造性思維能力的基礎(chǔ)知識(shí)
- 多學(xué)科團(tuán)隊(duì)(MDT)中的醫(yī)患溝通協(xié)同策略
- 期末復(fù)習(xí)知識(shí)點(diǎn)清單新教材統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 賬務(wù)清理合同(標(biāo)準(zhǔn)版)
評(píng)論
0/150
提交評(píng)論