




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JAVA知識(shí)梳理演講人:XXX20XX-XX-XX(行業(yè)講座培訓(xùn)課件)JAVA知識(shí)梳理演講人:XXX20XX-XX-XX(行業(yè)講座101項(xiàng)目中的架構(gòu)(行業(yè)講座培訓(xùn)課件)01項(xiàng)目中的架構(gòu)(行業(yè)講座培訓(xùn)課件)2項(xiàng)目中的架構(gòu)前端運(yùn)維持久層消息隊(duì)列全局搜索(行業(yè)講座培訓(xùn)課件)項(xiàng)目中的架構(gòu)前端(行業(yè)講座培訓(xùn)課件)3項(xiàng)目中的架構(gòu)前端VueHtmlAjax(行業(yè)講座培訓(xùn)課件)項(xiàng)目中的架構(gòu)前端VueHtmlAjax(行業(yè)講座培訓(xùn)課件)4項(xiàng)目中的架構(gòu)運(yùn)維nginx分發(fā)1Docker2Zookeeper(cp原則)3Redis4(行業(yè)講座培訓(xùn)課件)項(xiàng)目中的架構(gòu)運(yùn)維nginx分發(fā)1Docker2Zookeep5持久化節(jié)點(diǎn)PERSISTENT持久化節(jié)點(diǎn):所謂持久節(jié)點(diǎn),是指在節(jié)點(diǎn)創(chuàng)建后,就一直存在,直到有刪除操作來主動(dòng)清除這個(gè)節(jié)點(diǎn)。否則不會(huì)因?yàn)閯?chuàng)建該節(jié)點(diǎn)的客戶端會(huì)話失效而消失。Zookeeper(cp原則)(行業(yè)講座培訓(xùn)課件)持久化節(jié)點(diǎn)PERSISTENT持久化節(jié)點(diǎn):所謂持久節(jié)點(diǎn),6持久化有序節(jié)點(diǎn)PERSISTENT_SEQUENTIAL持久順序節(jié)點(diǎn):這類節(jié)點(diǎn)的基本特性和上面的節(jié)點(diǎn)類型是一致的。額外的特性是,在ZK中,每個(gè)父節(jié)點(diǎn)會(huì)為他的第一級(jí)子節(jié)點(diǎn)維護(hù)一份時(shí)序,會(huì)記錄每個(gè)子節(jié)點(diǎn)創(chuàng)建的先后順序?;谶@個(gè)特性,在創(chuàng)建子節(jié)點(diǎn)的時(shí)候,可以設(shè)置這個(gè)屬性,那么在創(chuàng)建節(jié)點(diǎn)過程中,ZK會(huì)自動(dòng)為給定節(jié)點(diǎn)名加上一個(gè)數(shù)字后綴,作為新的節(jié)點(diǎn)名。這個(gè)數(shù)字后綴的范圍是整型的最大值。在創(chuàng)建節(jié)點(diǎn)的時(shí)候只需要傳入節(jié)點(diǎn)“/test_”,這樣之后,zookeeper自動(dòng)會(huì)給”test_”后面補(bǔ)充數(shù)字。Zookeeper(cp原則)(行業(yè)講座培訓(xùn)課件)持久化有序節(jié)點(diǎn)PERSISTENT_SEQUENTIAL持7臨時(shí)節(jié)點(diǎn)EPHEMERAL臨時(shí)節(jié)點(diǎn):和持久節(jié)點(diǎn)不同的是,臨時(shí)節(jié)點(diǎn)的生命周期和客戶端會(huì)話綁定。也就是說,如果客戶端會(huì)話失效,那么這個(gè)節(jié)點(diǎn)就會(huì)自動(dòng)被清除掉。注意,這里提到的是會(huì)話失效,而非連接斷開。另外,在臨時(shí)節(jié)點(diǎn)下面不能創(chuàng)建子節(jié)點(diǎn)。這里還要注意一件事,就是當(dāng)你客戶端會(huì)話失效后,所產(chǎn)生的節(jié)點(diǎn)也不是一下子就消失了,也要過一段時(shí)間,大概是10秒以內(nèi),可以試一下,本機(jī)操作生成節(jié)點(diǎn),在服務(wù)器端用命令來查看當(dāng)前的節(jié)點(diǎn)數(shù)目,你會(huì)發(fā)現(xiàn)客戶端已經(jīng)stop,但是產(chǎn)生的節(jié)點(diǎn)還在。Zookeeper(cp原則)(行業(yè)講座培訓(xùn)課件)臨時(shí)節(jié)點(diǎn)EPHEMERAL臨時(shí)節(jié)點(diǎn):和持久節(jié)點(diǎn)不同的是,臨8臨時(shí)有序節(jié)點(diǎn)EPHEMERAL_SEQUENTIAL臨時(shí)自動(dòng)編號(hào)節(jié)點(diǎn):此節(jié)點(diǎn)是屬于臨時(shí)節(jié)點(diǎn),不過帶有順序,客戶端會(huì)話結(jié)束節(jié)點(diǎn)就消失Zookeeper(cp原則)(行業(yè)講座培訓(xùn)課件)臨時(shí)有序節(jié)點(diǎn)EPHEMERAL_SEQUENTIAL臨時(shí)自9設(shè)計(jì)目的https://0103最終一致性可靠性實(shí)時(shí)性02040506等待無關(guān)(wait-free)原子性順序性(行業(yè)講座培訓(xùn)課件)設(shè)計(jì)目的0103最終一致10最終一致性client無論連接到那一臺(tái)server,那么它得到的都是同樣的視圖,這是zookeeper最重要的性能設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)最終一致性client無論連接到那一臺(tái)server,那么它得11可靠性簡(jiǎn)單、健壯、良好的性能,如果一個(gè)消息被一臺(tái)服務(wù)器接受,那么它將被所有的服務(wù)器接受設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)可靠性簡(jiǎn)單、健壯、良好的性能,如果一個(gè)消息被一臺(tái)服務(wù)器接受,12實(shí)時(shí)性Zookeeper保證客戶端將在一個(gè)時(shí)間間隔范圍內(nèi)獲得服務(wù)器的更新信息,或者服務(wù)器失效的信息。但由于網(wǎng)絡(luò)延時(shí)等原因,Zookeeper不能保證兩個(gè)客戶端能同時(shí)得到剛更新的數(shù)據(jù),如果需要最新數(shù)據(jù),應(yīng)該在讀數(shù)據(jù)之前調(diào)用sync()接口。設(shè)計(jì)目的實(shí)時(shí)性Zookeeper保證客戶端將在一個(gè)時(shí)間間隔范圍內(nèi)獲13等待無關(guān)(wait-free)慢的或者失效的client不得干預(yù)快速的client的請(qǐng)求,使得每個(gè)client都能有效的等待。設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)(行業(yè)講座培訓(xùn)課件)等待無關(guān)(wait-free)慢的或者失效的client14原子性更新只有成功或者失敗設(shè)計(jì)目的原子性更新只有成功或者失敗設(shè)計(jì)目的15順序性全局順序偏序設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)順序性全局順序設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)16BCDEA1.string:最基本的數(shù)據(jù)類型,二進(jìn)制安全的字符串,最大512M。2.list:按照添加順序保持順序的字符串列表。2^32-1(4GB)3.set:無序的字符串集合,不存在重復(fù)的元素。2^32-1(4GB)4.sortedset:已排序的字符串集合。2^32-1(4GB)5.hash:key-value對(duì)的一種集合。2^32-1(4GB)Redis支持?jǐn)?shù)據(jù)格式(行業(yè)講座培訓(xùn)課件)BCDEA1.string:最基本的數(shù)據(jù)類型,二進(jìn)制安全的字17穿透Redis指的是:訪問不存在的key,導(dǎo)致直接穿透緩存,訪問數(shù)據(jù)庫(kù)穿透Redis指的是:訪問不存在的key,導(dǎo)致直接穿透緩存,18指的是:存在redis中的key同一時(shí)間失效,導(dǎo)致流量全部訪問數(shù)據(jù)庫(kù)限流,降級(jí),本地ehcache緩存雪崩指的是:存在redis中的key同一時(shí)間失效,導(dǎo)致流量全部訪19擊穿緩存中的熱點(diǎn)key突然失效,原本走緩存的大量請(qǐng)求直接打向了數(shù)據(jù)庫(kù),就好像在緩存中擊穿了一個(gè)洞1.在被查詢的數(shù)據(jù)上加互斥鎖,這樣其他的請(qǐng)求只能等待擊穿20盡可能使用散列表(hashes),散列表(是說散列表里面存儲(chǔ)的數(shù)少)使用的內(nèi)存非常小,所以你應(yīng)該盡可能的將你的數(shù)據(jù)模型抽象到一個(gè)散列表里面。比如你的web系統(tǒng)中有一個(gè)用戶對(duì)象,不要為這個(gè)用戶的名稱,姓氏,郵箱,密碼設(shè)置單獨(dú)的key,而是應(yīng)該把這個(gè)用戶的所有信息存儲(chǔ)到一張散列表里面.Redis內(nèi)存優(yōu)化盡可能使用散列表(hashes),散列表(是說散列表里面存儲(chǔ)21項(xiàng)目中的架構(gòu)持久層mybatis01druid02hibernate03項(xiàng)目中的架構(gòu)持久層mybatis01druid02hiber22mybatis01手寫sql靈活、高效能夠很好的集成spring學(xué)習(xí)簡(jiǎn)單,半ORM框架優(yōu)點(diǎn)02移植性差sql能力要求較高缺點(diǎn)03#{},是預(yù)處理,替換成?使用PreparedStatement替換值${}直接替換值#{}和${}的區(qū)別是什么?mybatis01手寫sql靈活、高效優(yōu)點(diǎn)02移植性差缺點(diǎn)023消息隊(duì)列RabbitMq項(xiàng)目中的架構(gòu)消息隊(duì)列RabbitMq項(xiàng)目中的架構(gòu)24全局搜索Elasticsearch(ES)項(xiàng)目中的架構(gòu)全局搜索Elasticsearch(ES)項(xiàng)目中的架構(gòu)2502多線程02多線程26多線程線程池volatile作用ReentrantLock與SynchronizedJUCAQS(AbstractQuenedSynchronizer)多線程線程池27多線程線程池SingleThreadExecutor1FixedThreadPool2CachedThreadPool3ScheduledThreadPool4多線程線程池SingleThreadExecutor1Fix28SingleThreadExecutor這個(gè)線程池只有一個(gè)核心線程在工作,也就是相當(dāng)于單線程串行執(zhí)行所有任務(wù)。如果這個(gè)唯一的線程因?yàn)楫惓=Y(jié)束,那么會(huì)有一個(gè)新的線程來替代它。此線程池保證所有任務(wù)的執(zhí)行順序按照任務(wù)的提交順序執(zhí)行SingleThreadExecutor這個(gè)線程池29FixedThreadPool固定線程池:只有核心線程。每次提交一個(gè)任務(wù)就創(chuàng)建一個(gè)線程,直到線程達(dá)到線程池的最大大小。線程池的大小一旦達(dá)到最大值就會(huì)保持不變,如果某個(gè)線程因?yàn)閳?zhí)行異常而結(jié)束,那么線程池會(huì)補(bǔ)充一個(gè)新線程。FixedThreadPool固定線程池:只有核心30CachedThreadPool無邊界線程池,會(huì)回收空閑的的線程,任務(wù)增加時(shí)也會(huì)新建線程(數(shù)量由JVM指定),通常用于短任務(wù)CachedThreadPool無邊界線程池,會(huì)回收空閑的31核心線程池固定,大小無限的線程池。ScheduledThreadPool核心線程池固定,大小無限的線程32多線程volatile作用AB線程間可見:當(dāng)一個(gè)線程修改值后,其它線程立即可見禁止指令重拍多線程volatile作用AB線程間可見:當(dāng)一個(gè)線程修改值后33ReentrantLock與Synchronized特點(diǎn):要么不占,要么獨(dú)占多線程ReentrantLock與Synchronized特點(diǎn):34reentrantLock優(yōu)點(diǎn)等待可中斷超時(shí)直接返回可判斷是否有其他線程等待該鎖可實(shí)現(xiàn)公平鎖高競(jìng)爭(zhēng)的情況下,性能維持常態(tài)缺點(diǎn)不可以自動(dòng)釋放鎖,需要手動(dòng)unlockreentrantLock優(yōu)點(diǎn)35synchronized優(yōu)點(diǎn)JVM底層實(shí)現(xiàn),異??勺詣?dòng)釋放鎖低競(jìng)爭(zhēng)的情況下,性能比renntrantLock要好缺點(diǎn)高競(jìng)爭(zhēng)的情況下,性能下降比較快synchronized優(yōu)點(diǎn)36多線程JUCCyclicBarrier02Semaphor03CountDownLatch01多線程JUCCyclicBarrier02Semaphor37CountDownLatch阻塞當(dāng)前線程,等所有的線程都處理后,在運(yùn)行CountDownLatch阻塞當(dāng)前線程,等所有的線程都處理38循環(huán)柵欄:主要調(diào)用await方法,每調(diào)用一次減一,計(jì)數(shù)為0的時(shí)候,解除阻塞;CyclicBarrier循環(huán)柵欄:主要調(diào)用await方法,每調(diào)用一次減一,計(jì)數(shù)為039限制同一時(shí)間,訪問資源的線程數(shù)量;aquire獲取許可,release釋放許可Semaphor限制同一時(shí)間,訪問資源的線程數(shù)量;aquire獲取許可,40AQS(AbstractQuenedSynchronizer)構(gòu)建同步鎖的框架多線程AQS(AbstractQuenedSynchronizer4103數(shù)據(jù)庫(kù)03數(shù)據(jù)庫(kù)42數(shù)據(jù)庫(kù)https://0103最左側(cè)原則簇?fù)硭饕c非簇?fù)硭饕饕?2040506innoDbMyISAM事務(wù)數(shù)據(jù)庫(kù)0103最左側(cè)原則43數(shù)據(jù)庫(kù)設(shè)計(jì)范式數(shù)據(jù)庫(kù)設(shè)計(jì)范式44最左側(cè)原則針對(duì)復(fù)合索引,先使用復(fù)合索引最前面的索引(精確查找),直到范圍查找數(shù)據(jù)庫(kù)最左側(cè)原則針對(duì)復(fù)合索引,先使用復(fù)合索引最前面的索引(精確查找45數(shù)據(jù)庫(kù)簇?fù)硭饕c非簇?fù)硭饕負(fù)硭饕簲?shù)據(jù)和索引放在一起非簇?fù)硭饕簲?shù)據(jù)與索引分開放數(shù)據(jù)庫(kù)簇?fù)硭饕c非簇?fù)硭饕負(fù)硭饕簲?shù)據(jù)和索引放在一起非簇?fù)?6數(shù)據(jù)庫(kù)索引hash索引01Btree索引02有序數(shù)組03數(shù)據(jù)庫(kù)索引hash索引01Btree索引02有序數(shù)組0347hash索引對(duì)于哈希索引來說,底層的數(shù)據(jù)結(jié)構(gòu)就是哈希表,因此在絕大多數(shù)需求為單條記錄查詢的時(shí)候,可以選擇哈希索引,查詢性能最快;其余大部分場(chǎng)景,建議選擇BTree索引;hash索引對(duì)于哈希索引來說,底層的數(shù)據(jù)結(jié)構(gòu)就是哈希表,因此48Btree索引B樹葉子節(jié)點(diǎn)存儲(chǔ)多個(gè)元素(包含key和value)B+樹葉子節(jié)點(diǎn)只存key,非葉子節(jié)點(diǎn)存儲(chǔ)值;Btree索引B樹49有序數(shù)組有序數(shù)組在等值查詢和范圍查詢場(chǎng)景中的性能都非常優(yōu)秀。用二分法就可以快速找到(時(shí)間復(fù)雜度為O(logN))。但是如果要往中間插入一條數(shù)據(jù),則必須挪動(dòng)后面的所有記錄,成本較高。因此,有序數(shù)組只適用于靜態(tài)存儲(chǔ)引擎,即數(shù)據(jù)表一旦建立后不再會(huì)修改。有序數(shù)組有序數(shù)組在等值查詢和范圍查詢場(chǎng)景中的性能都非常優(yōu)秀。50數(shù)據(jù)庫(kù)innoDb優(yōu)點(diǎn)索引組織表存儲(chǔ)方式索引使用的是B+樹數(shù)據(jù)庫(kù)innoDb優(yōu)點(diǎn)索引組織表存儲(chǔ)方式索引使用的是B+樹51優(yōu)點(diǎn)支持事務(wù)行級(jí)鎖優(yōu)點(diǎn)支持事務(wù)52存儲(chǔ)方式共享表空間存儲(chǔ)所有表的數(shù)據(jù)文件和索引文件都保存在一個(gè)表空間里,一個(gè)表空間可以有多個(gè)文件,通過innodb_data_file_path和innodb_data_home_dir參數(shù)設(shè)置共享表空間的位置和名字,一般共享表空間的名字叫ibdata1-n。多表空間存儲(chǔ)以表名為文件名稱存儲(chǔ)存儲(chǔ)方式共享表空間存儲(chǔ)53數(shù)據(jù)庫(kù)MyISAM優(yōu)點(diǎn)缺點(diǎn)堆表數(shù)據(jù)庫(kù)MyISAM優(yōu)點(diǎn)缺點(diǎn)堆表54支持FULLTEXT類型的全文索引優(yōu)點(diǎn)支持FULLTEXT類型的全文索引優(yōu)點(diǎn)55缺點(diǎn)不支持事務(wù)不支持外鍵不支持行級(jí)鎖(只支持表級(jí)鎖)缺點(diǎn)不支持事務(wù)562堆表在磁盤存儲(chǔ)上有三個(gè)文件,每個(gè)文件名以表名開頭,擴(kuò)展名指出文件類型.MYI用于存放表索引.MYD用于存放數(shù)據(jù).frm用于存儲(chǔ)表的定義2堆表在磁盤存儲(chǔ)上有三個(gè)文件,每個(gè)文件名以表名開頭,擴(kuò)展名指57數(shù)據(jù)庫(kù)事務(wù)ABCD原子性持久性一致性隔離性數(shù)據(jù)庫(kù)事務(wù)ABCD原子性持久性一致性隔離性58未授權(quán)讀取,也稱臟讀,在數(shù)據(jù)修改的時(shí)候允許讀取授權(quán)讀取,也稱提交后讀取可重復(fù)讀取:禁止不可重復(fù)讀取和臟讀取,但是有時(shí)可能出現(xiàn)幻讀數(shù)據(jù)。讀取數(shù)據(jù)的事務(wù)將會(huì)禁止寫事務(wù)(但允許讀事務(wù)),寫事務(wù)則禁止任何其他事務(wù)??梢酝ㄟ^“共享讀鎖”和“排他寫鎖”實(shí)現(xiàn)。序列化:提供嚴(yán)格的事務(wù)隔離。它要求事務(wù)序列化執(zhí)行,事務(wù)只能一個(gè)接著一個(gè)地執(zhí)行,不能并發(fā)執(zhí)行。僅僅通過“行級(jí)鎖”是無法實(shí)現(xiàn)事務(wù)序列化的,必須通過其他機(jī)制保證新插入的數(shù)據(jù)不會(huì)被剛執(zhí)行查詢操作的事務(wù)訪問到?;米x不可重復(fù)事務(wù)隔離未授權(quán)讀取,也稱臟讀,在數(shù)據(jù)修改的時(shí)候允許讀取事務(wù)隔離59事務(wù)隔離臟讀事務(wù)隔離臟讀60幻讀針對(duì)多個(gè)數(shù)據(jù)事務(wù)隔離幻讀針對(duì)多個(gè)數(shù)據(jù)事務(wù)隔離61不可重復(fù)針對(duì)單個(gè)數(shù)據(jù)事務(wù)隔離不可重復(fù)針對(duì)單個(gè)數(shù)據(jù)事務(wù)隔離62臟讀讀取了另一個(gè)事務(wù)未提交的數(shù)據(jù)事務(wù)隔離臟讀讀取了另一個(gè)事務(wù)未提交的數(shù)據(jù)事務(wù)隔離63數(shù)據(jù)庫(kù)設(shè)計(jì)范式單擊此處添加標(biāo)題9,300Million第一范式:所有的字段都是最小的,不可拆分;例如高級(jí)職稱可分為教授與副教授(不符合第一范式)第二范式:表中所有列都依賴于主鍵,也就是說一張表只描述一件事情第三范式:數(shù)據(jù)不能存在傳遞關(guān)系,例如:學(xué)號(hào),班級(jí)就是屬于傳遞單擊此處輸入你的正文,文字是您思想的提煉,為了最終演示發(fā)布的良好效果,請(qǐng)盡量言簡(jiǎn)意賅的闡述觀點(diǎn);根據(jù)需要可酌情增減文字,以便觀者可以準(zhǔn)確理解您所傳達(dá)的信息。數(shù)據(jù)庫(kù)設(shè)計(jì)范式單擊此處添加標(biāo)題9,300Million第一6404加密04加密65加密與解密都使用同一個(gè)秘鑰,只有一個(gè)秘鑰,稱為私鑰DES算法AES算法3DES算法對(duì)稱加密加密與解密都使用同一個(gè)秘鑰,只有一個(gè)秘鑰,稱為私鑰DES66加密與解密使用不同的秘鑰,公鑰和私鑰(互為解密)RSAECC非對(duì)稱加密加密與解密使用不同的秘鑰,公鑰和私鑰(互為解密)RSA非對(duì)稱6705分布式架構(gòu)05分布式架構(gòu)68mysql分庫(kù)分表CAPConsistency(一致性)Availability(可用性)Partitiontolerance(分區(qū)容錯(cuò)性)分布式架構(gòu)mysql分庫(kù)分表分布式架構(gòu)6906虛擬機(jī)06虛擬機(jī)70虛擬機(jī)Native方法棧01程序計(jì)數(shù)器04堆02方法區(qū)05javajvm棧03垃圾回收算法06虛擬機(jī)Native方法棧01程序計(jì)數(shù)器04堆02方法區(qū)05j71程序計(jì)數(shù)器線程切換,CPU調(diào)度可以正確的回到原來的線程虛擬機(jī)程序計(jì)數(shù)器線程切換,CPU調(diào)度可以正確的回到原來的線程虛擬機(jī)72方法區(qū)類的信息,以及staticfinal變量虛擬機(jī)方法區(qū)類的信息,以及staticfinal變量虛擬機(jī)73虛擬機(jī)垃圾回收算法復(fù)制算法01標(biāo)記清除02標(biāo)記整理03虛擬機(jī)垃圾回收算法復(fù)制算法01標(biāo)記清除02標(biāo)記整理037407dubbo07dubbo75dubbo
dubbo7608集合類08集合類77集合類
集合類7809Spring09Spring79Spring事務(wù)的實(shí)現(xiàn)、傳遞性優(yōu)點(diǎn)Bean設(shè)計(jì)模式Spring事務(wù)的實(shí)現(xiàn)、傳遞性80Spring優(yōu)點(diǎn)1代碼低侵入性2對(duì)象之間的依賴交于框架,降低耦合3支持主流框架,自成體系4提供AOP服務(wù),更好的復(fù)用代碼Spring優(yōu)點(diǎn)1代碼低侵入性2對(duì)象之間的依賴交于框架,降81優(yōu)點(diǎn)代碼低侵入性優(yōu)點(diǎn)代碼低侵入性82優(yōu)點(diǎn)對(duì)象之間的依賴交于框架,降低耦合優(yōu)點(diǎn)對(duì)象之間的依賴交于框架,降低耦合83優(yōu)點(diǎn)支持主流框架,自成體系優(yōu)點(diǎn)支持主流框架,自成體系84提供AOP服務(wù),更好的復(fù)用代碼JDK動(dòng)態(tài)代理不支持普通類支持接口Cglib支持普通類支持接口提供AOP服務(wù),更好的復(fù)用代碼JDK動(dòng)態(tài)代理Cglib85Bean生命周期SpringBean生命周期Spring86Bean生命周期2.屬性依賴注入021.初始化Bean013.aware接口034.beanPostProcesser045.init初始化方法056.使用Bean06Bean生命周期2.屬性依賴注入021.初始化Bean01387Bean生命周期7.銷毀前方法8.銷毀Bean生命周期7.銷毀前方法8.銷毀88Spring設(shè)計(jì)模式工廠模式01單例模式03代理模式02觀察者模式04Spring設(shè)計(jì)模式工廠模式01單例模式03代理模式02觀察89工廠模式BeanFactory代理模式Aop觀察者模式定義對(duì)象鍵一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都會(huì)得到通知被制動(dòng)更新,如Spring中l(wèi)istener的實(shí)現(xiàn)--ApplicationListener。單例模式Bean默認(rèn)為單例設(shè)計(jì)模式工廠模式BeanFactory代理模式Aop觀察者模式定義對(duì)9010微服務(wù)10微服務(wù)91業(yè)務(wù)痛點(diǎn),并發(fā),迭代可以進(jìn)行灰度發(fā)布,不影響使用數(shù)據(jù)庫(kù)不會(huì)連表查詢,如果過度偶爾則拆分不開拆分時(shí)機(jī)業(yè)務(wù)痛點(diǎn),并發(fā),迭代可以進(jìn)行灰度發(fā)布,不影響使用拆分時(shí)機(jī)92拆分條件應(yīng)用無狀態(tài)微服務(wù)(行業(yè)講座培訓(xùn)課件)拆分條件應(yīng)用無狀態(tài)微服務(wù)(行業(yè)講座培訓(xùn)課件)9311排序算法,時(shí)間、空間復(fù)雜度(行業(yè)講座培訓(xùn)課件)11排序算法,時(shí)間、空間復(fù)雜度(行業(yè)講座培訓(xùn)課件)94logo排序算法,時(shí)間、空間復(fù)雜度logo排序算法,時(shí)間、空間復(fù)雜度9512類加載機(jī)制12類加載機(jī)制96類加載機(jī)制(行業(yè)講座培訓(xùn)課件)類加載機(jī)制(行業(yè)講座培訓(xùn)課件)9713IO流(行業(yè)講座培訓(xùn)課件)13IO流(行業(yè)講座培訓(xùn)課件)98IO流
(行業(yè)講座培訓(xùn)課件)(行業(yè)講座培訓(xùn)課件)IO流(行業(yè)講座培訓(xùn)課件)(行業(yè)講座培訓(xùn)課件)9914數(shù)據(jù)結(jié)構(gòu)(行業(yè)講座培訓(xùn)課件)14數(shù)據(jù)結(jié)構(gòu)(行業(yè)講座培訓(xùn)課件)100數(shù)據(jù)結(jié)構(gòu)鏈表鏈表reverse二叉樹(行業(yè)講座培訓(xùn)課件)數(shù)據(jù)結(jié)構(gòu)鏈表(行業(yè)講座培訓(xùn)課件)101感謝聆聽(行業(yè)講座培訓(xùn)課件)感謝聆聽(行業(yè)講座培訓(xùn)課件)102JAVA知識(shí)梳理演講人:XXX20XX-XX-XX(行業(yè)講座培訓(xùn)課件)JAVA知識(shí)梳理演講人:XXX20XX-XX-XX(行業(yè)講座10301項(xiàng)目中的架構(gòu)(行業(yè)講座培訓(xùn)課件)01項(xiàng)目中的架構(gòu)(行業(yè)講座培訓(xùn)課件)104項(xiàng)目中的架構(gòu)前端運(yùn)維持久層消息隊(duì)列全局搜索(行業(yè)講座培訓(xùn)課件)項(xiàng)目中的架構(gòu)前端(行業(yè)講座培訓(xùn)課件)105項(xiàng)目中的架構(gòu)前端VueHtmlAjax(行業(yè)講座培訓(xùn)課件)項(xiàng)目中的架構(gòu)前端VueHtmlAjax(行業(yè)講座培訓(xùn)課件)106項(xiàng)目中的架構(gòu)運(yùn)維nginx分發(fā)1Docker2Zookeeper(cp原則)3Redis4(行業(yè)講座培訓(xùn)課件)項(xiàng)目中的架構(gòu)運(yùn)維nginx分發(fā)1Docker2Zookeep107持久化節(jié)點(diǎn)PERSISTENT持久化節(jié)點(diǎn):所謂持久節(jié)點(diǎn),是指在節(jié)點(diǎn)創(chuàng)建后,就一直存在,直到有刪除操作來主動(dòng)清除這個(gè)節(jié)點(diǎn)。否則不會(huì)因?yàn)閯?chuàng)建該節(jié)點(diǎn)的客戶端會(huì)話失效而消失。Zookeeper(cp原則)(行業(yè)講座培訓(xùn)課件)持久化節(jié)點(diǎn)PERSISTENT持久化節(jié)點(diǎn):所謂持久節(jié)點(diǎn),108持久化有序節(jié)點(diǎn)PERSISTENT_SEQUENTIAL持久順序節(jié)點(diǎn):這類節(jié)點(diǎn)的基本特性和上面的節(jié)點(diǎn)類型是一致的。額外的特性是,在ZK中,每個(gè)父節(jié)點(diǎn)會(huì)為他的第一級(jí)子節(jié)點(diǎn)維護(hù)一份時(shí)序,會(huì)記錄每個(gè)子節(jié)點(diǎn)創(chuàng)建的先后順序?;谶@個(gè)特性,在創(chuàng)建子節(jié)點(diǎn)的時(shí)候,可以設(shè)置這個(gè)屬性,那么在創(chuàng)建節(jié)點(diǎn)過程中,ZK會(huì)自動(dòng)為給定節(jié)點(diǎn)名加上一個(gè)數(shù)字后綴,作為新的節(jié)點(diǎn)名。這個(gè)數(shù)字后綴的范圍是整型的最大值。在創(chuàng)建節(jié)點(diǎn)的時(shí)候只需要傳入節(jié)點(diǎn)“/test_”,這樣之后,zookeeper自動(dòng)會(huì)給”test_”后面補(bǔ)充數(shù)字。Zookeeper(cp原則)(行業(yè)講座培訓(xùn)課件)持久化有序節(jié)點(diǎn)PERSISTENT_SEQUENTIAL持109臨時(shí)節(jié)點(diǎn)EPHEMERAL臨時(shí)節(jié)點(diǎn):和持久節(jié)點(diǎn)不同的是,臨時(shí)節(jié)點(diǎn)的生命周期和客戶端會(huì)話綁定。也就是說,如果客戶端會(huì)話失效,那么這個(gè)節(jié)點(diǎn)就會(huì)自動(dòng)被清除掉。注意,這里提到的是會(huì)話失效,而非連接斷開。另外,在臨時(shí)節(jié)點(diǎn)下面不能創(chuàng)建子節(jié)點(diǎn)。這里還要注意一件事,就是當(dāng)你客戶端會(huì)話失效后,所產(chǎn)生的節(jié)點(diǎn)也不是一下子就消失了,也要過一段時(shí)間,大概是10秒以內(nèi),可以試一下,本機(jī)操作生成節(jié)點(diǎn),在服務(wù)器端用命令來查看當(dāng)前的節(jié)點(diǎn)數(shù)目,你會(huì)發(fā)現(xiàn)客戶端已經(jīng)stop,但是產(chǎn)生的節(jié)點(diǎn)還在。Zookeeper(cp原則)(行業(yè)講座培訓(xùn)課件)臨時(shí)節(jié)點(diǎn)EPHEMERAL臨時(shí)節(jié)點(diǎn):和持久節(jié)點(diǎn)不同的是,臨110臨時(shí)有序節(jié)點(diǎn)EPHEMERAL_SEQUENTIAL臨時(shí)自動(dòng)編號(hào)節(jié)點(diǎn):此節(jié)點(diǎn)是屬于臨時(shí)節(jié)點(diǎn),不過帶有順序,客戶端會(huì)話結(jié)束節(jié)點(diǎn)就消失Zookeeper(cp原則)(行業(yè)講座培訓(xùn)課件)臨時(shí)有序節(jié)點(diǎn)EPHEMERAL_SEQUENTIAL臨時(shí)自111設(shè)計(jì)目的https://0103最終一致性可靠性實(shí)時(shí)性02040506等待無關(guān)(wait-free)原子性順序性(行業(yè)講座培訓(xùn)課件)設(shè)計(jì)目的0103最終一致112最終一致性client無論連接到那一臺(tái)server,那么它得到的都是同樣的視圖,這是zookeeper最重要的性能設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)最終一致性client無論連接到那一臺(tái)server,那么它得113可靠性簡(jiǎn)單、健壯、良好的性能,如果一個(gè)消息被一臺(tái)服務(wù)器接受,那么它將被所有的服務(wù)器接受設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)可靠性簡(jiǎn)單、健壯、良好的性能,如果一個(gè)消息被一臺(tái)服務(wù)器接受,114實(shí)時(shí)性Zookeeper保證客戶端將在一個(gè)時(shí)間間隔范圍內(nèi)獲得服務(wù)器的更新信息,或者服務(wù)器失效的信息。但由于網(wǎng)絡(luò)延時(shí)等原因,Zookeeper不能保證兩個(gè)客戶端能同時(shí)得到剛更新的數(shù)據(jù),如果需要最新數(shù)據(jù),應(yīng)該在讀數(shù)據(jù)之前調(diào)用sync()接口。設(shè)計(jì)目的實(shí)時(shí)性Zookeeper保證客戶端將在一個(gè)時(shí)間間隔范圍內(nèi)獲115等待無關(guān)(wait-free)慢的或者失效的client不得干預(yù)快速的client的請(qǐng)求,使得每個(gè)client都能有效的等待。設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)(行業(yè)講座培訓(xùn)課件)等待無關(guān)(wait-free)慢的或者失效的client116原子性更新只有成功或者失敗設(shè)計(jì)目的原子性更新只有成功或者失敗設(shè)計(jì)目的117順序性全局順序偏序設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)順序性全局順序設(shè)計(jì)目的(行業(yè)講座培訓(xùn)課件)118BCDEA1.string:最基本的數(shù)據(jù)類型,二進(jìn)制安全的字符串,最大512M。2.list:按照添加順序保持順序的字符串列表。2^32-1(4GB)3.set:無序的字符串集合,不存在重復(fù)的元素。2^32-1(4GB)4.sortedset:已排序的字符串集合。2^32-1(4GB)5.hash:key-value對(duì)的一種集合。2^32-1(4GB)Redis支持?jǐn)?shù)據(jù)格式(行業(yè)講座培訓(xùn)課件)BCDEA1.string:最基本的數(shù)據(jù)類型,二進(jìn)制安全的字119穿透Redis指的是:訪問不存在的key,導(dǎo)致直接穿透緩存,訪問數(shù)據(jù)庫(kù)穿透Redis指的是:訪問不存在的key,導(dǎo)致直接穿透緩存,120指的是:存在redis中的key同一時(shí)間失效,導(dǎo)致流量全部訪問數(shù)據(jù)庫(kù)限流,降級(jí),本地ehcache緩存雪崩指的是:存在redis中的key同一時(shí)間失效,導(dǎo)致流量全部訪121擊穿緩存中的熱點(diǎn)key突然失效,原本走緩存的大量請(qǐng)求直接打向了數(shù)據(jù)庫(kù),就好像在緩存中擊穿了一個(gè)洞1.在被查詢的數(shù)據(jù)上加互斥鎖,這樣其他的請(qǐng)求只能等待擊穿122盡可能使用散列表(hashes),散列表(是說散列表里面存儲(chǔ)的數(shù)少)使用的內(nèi)存非常小,所以你應(yīng)該盡可能的將你的數(shù)據(jù)模型抽象到一個(gè)散列表里面。比如你的web系統(tǒng)中有一個(gè)用戶對(duì)象,不要為這個(gè)用戶的名稱,姓氏,郵箱,密碼設(shè)置單獨(dú)的key,而是應(yīng)該把這個(gè)用戶的所有信息存儲(chǔ)到一張散列表里面.Redis內(nèi)存優(yōu)化盡可能使用散列表(hashes),散列表(是說散列表里面存儲(chǔ)123項(xiàng)目中的架構(gòu)持久層mybatis01druid02hibernate03項(xiàng)目中的架構(gòu)持久層mybatis01druid02hiber124mybatis01手寫sql靈活、高效能夠很好的集成spring學(xué)習(xí)簡(jiǎn)單,半ORM框架優(yōu)點(diǎn)02移植性差sql能力要求較高缺點(diǎn)03#{},是預(yù)處理,替換成?使用PreparedStatement替換值${}直接替換值#{}和${}的區(qū)別是什么?mybatis01手寫sql靈活、高效優(yōu)點(diǎn)02移植性差缺點(diǎn)0125消息隊(duì)列RabbitMq項(xiàng)目中的架構(gòu)消息隊(duì)列RabbitMq項(xiàng)目中的架構(gòu)126全局搜索Elasticsearch(ES)項(xiàng)目中的架構(gòu)全局搜索Elasticsearch(ES)項(xiàng)目中的架構(gòu)12702多線程02多線程128多線程線程池volatile作用ReentrantLock與SynchronizedJUCAQS(AbstractQuenedSynchronizer)多線程線程池129多線程線程池SingleThreadExecutor1FixedThreadPool2CachedThreadPool3ScheduledThreadPool4多線程線程池SingleThreadExecutor1Fix130SingleThreadExecutor這個(gè)線程池只有一個(gè)核心線程在工作,也就是相當(dāng)于單線程串行執(zhí)行所有任務(wù)。如果這個(gè)唯一的線程因?yàn)楫惓=Y(jié)束,那么會(huì)有一個(gè)新的線程來替代它。此線程池保證所有任務(wù)的執(zhí)行順序按照任務(wù)的提交順序執(zhí)行SingleThreadExecutor這個(gè)線程池131FixedThreadPool固定線程池:只有核心線程。每次提交一個(gè)任務(wù)就創(chuàng)建一個(gè)線程,直到線程達(dá)到線程池的最大大小。線程池的大小一旦達(dá)到最大值就會(huì)保持不變,如果某個(gè)線程因?yàn)閳?zhí)行異常而結(jié)束,那么線程池會(huì)補(bǔ)充一個(gè)新線程。FixedThreadPool固定線程池:只有核心132CachedThreadPool無邊界線程池,會(huì)回收空閑的的線程,任務(wù)增加時(shí)也會(huì)新建線程(數(shù)量由JVM指定),通常用于短任務(wù)CachedThreadPool無邊界線程池,會(huì)回收空閑的133核心線程池固定,大小無限的線程池。ScheduledThreadPool核心線程池固定,大小無限的線程134多線程volatile作用AB線程間可見:當(dāng)一個(gè)線程修改值后,其它線程立即可見禁止指令重拍多線程volatile作用AB線程間可見:當(dāng)一個(gè)線程修改值后135ReentrantLock與Synchronized特點(diǎn):要么不占,要么獨(dú)占多線程ReentrantLock與Synchronized特點(diǎn):136reentrantLock優(yōu)點(diǎn)等待可中斷超時(shí)直接返回可判斷是否有其他線程等待該鎖可實(shí)現(xiàn)公平鎖高競(jìng)爭(zhēng)的情況下,性能維持常態(tài)缺點(diǎn)不可以自動(dòng)釋放鎖,需要手動(dòng)unlockreentrantLock優(yōu)點(diǎn)137synchronized優(yōu)點(diǎn)JVM底層實(shí)現(xiàn),異??勺詣?dòng)釋放鎖低競(jìng)爭(zhēng)的情況下,性能比renntrantLock要好缺點(diǎn)高競(jìng)爭(zhēng)的情況下,性能下降比較快synchronized優(yōu)點(diǎn)138多線程JUCCyclicBarrier02Semaphor03CountDownLatch01多線程JUCCyclicBarrier02Semaphor139CountDownLatch阻塞當(dāng)前線程,等所有的線程都處理后,在運(yùn)行CountDownLatch阻塞當(dāng)前線程,等所有的線程都處理140循環(huán)柵欄:主要調(diào)用await方法,每調(diào)用一次減一,計(jì)數(shù)為0的時(shí)候,解除阻塞;CyclicBarrier循環(huán)柵欄:主要調(diào)用await方法,每調(diào)用一次減一,計(jì)數(shù)為0141限制同一時(shí)間,訪問資源的線程數(shù)量;aquire獲取許可,release釋放許可Semaphor限制同一時(shí)間,訪問資源的線程數(shù)量;aquire獲取許可,142AQS(AbstractQuenedSynchronizer)構(gòu)建同步鎖的框架多線程AQS(AbstractQuenedSynchronizer14303數(shù)據(jù)庫(kù)03數(shù)據(jù)庫(kù)144數(shù)據(jù)庫(kù)https://0103最左側(cè)原則簇?fù)硭饕c非簇?fù)硭饕饕?2040506innoDbMyISAM事務(wù)數(shù)據(jù)庫(kù)0103最左側(cè)原則145數(shù)據(jù)庫(kù)設(shè)計(jì)范式數(shù)據(jù)庫(kù)設(shè)計(jì)范式146最左側(cè)原則針對(duì)復(fù)合索引,先使用復(fù)合索引最前面的索引(精確查找),直到范圍查找數(shù)據(jù)庫(kù)最左側(cè)原則針對(duì)復(fù)合索引,先使用復(fù)合索引最前面的索引(精確查找147數(shù)據(jù)庫(kù)簇?fù)硭饕c非簇?fù)硭饕負(fù)硭饕簲?shù)據(jù)和索引放在一起非簇?fù)硭饕簲?shù)據(jù)與索引分開放數(shù)據(jù)庫(kù)簇?fù)硭饕c非簇?fù)硭饕負(fù)硭饕簲?shù)據(jù)和索引放在一起非簇?fù)?48數(shù)據(jù)庫(kù)索引hash索引01Btree索引02有序數(shù)組03數(shù)據(jù)庫(kù)索引hash索引01Btree索引02有序數(shù)組03149hash索引對(duì)于哈希索引來說,底層的數(shù)據(jù)結(jié)構(gòu)就是哈希表,因此在絕大多數(shù)需求為單條記錄查詢的時(shí)候,可以選擇哈希索引,查詢性能最快;其余大部分場(chǎng)景,建議選擇BTree索引;hash索引對(duì)于哈希索引來說,底層的數(shù)據(jù)結(jié)構(gòu)就是哈希表,因此150Btree索引B樹葉子節(jié)點(diǎn)存儲(chǔ)多個(gè)元素(包含key和value)B+樹葉子節(jié)點(diǎn)只存key,非葉子節(jié)點(diǎn)存儲(chǔ)值;Btree索引B樹151有序數(shù)組有序數(shù)組在等值查詢和范圍查詢場(chǎng)景中的性能都非常優(yōu)秀。用二分法就可以快速找到(時(shí)間復(fù)雜度為O(logN))。但是如果要往中間插入一條數(shù)據(jù),則必須挪動(dòng)后面的所有記錄,成本較高。因此,有序數(shù)組只適用于靜態(tài)存儲(chǔ)引擎,即數(shù)據(jù)表一旦建立后不再會(huì)修改。有序數(shù)組有序數(shù)組在等值查詢和范圍查詢場(chǎng)景中的性能都非常優(yōu)秀。152數(shù)據(jù)庫(kù)innoDb優(yōu)點(diǎn)索引組織表存儲(chǔ)方式索引使用的是B+樹數(shù)據(jù)庫(kù)innoDb優(yōu)點(diǎn)索引組織表存儲(chǔ)方式索引使用的是B+樹153優(yōu)點(diǎn)支持事務(wù)行級(jí)鎖優(yōu)點(diǎn)支持事務(wù)154存儲(chǔ)方式共享表空間存儲(chǔ)所有表的數(shù)據(jù)文件和索引文件都保存在一個(gè)表空間里,一個(gè)表空間可以有多個(gè)文件,通過innodb_data_file_path和innodb_data_home_dir參數(shù)設(shè)置共享表空間的位置和名字,一般共享表空間的名字叫ibdata1-n。多表空間存儲(chǔ)以表名為文件名稱存儲(chǔ)存儲(chǔ)方式共享表空間存儲(chǔ)155數(shù)據(jù)庫(kù)MyISAM優(yōu)點(diǎn)缺點(diǎn)堆表數(shù)據(jù)庫(kù)MyISAM優(yōu)點(diǎn)缺點(diǎn)堆表156支持FULLTEXT類型的全文索引優(yōu)點(diǎn)支持FULLTEXT類型的全文索引優(yōu)點(diǎn)157缺點(diǎn)不支持事務(wù)不支持外鍵不支持行級(jí)鎖(只支持表級(jí)鎖)缺點(diǎn)不支持事務(wù)1582堆表在磁盤存儲(chǔ)上有三個(gè)文件,每個(gè)文件名以表名開頭,擴(kuò)展名指出文件類型.MYI用于存放表索引.MYD用于存放數(shù)據(jù).frm用于存儲(chǔ)表的定義2堆表在磁盤存儲(chǔ)上有三個(gè)文件,每個(gè)文件名以表名開頭,擴(kuò)展名指159數(shù)據(jù)庫(kù)事務(wù)ABCD原子性持久性一致性隔離性數(shù)據(jù)庫(kù)事務(wù)ABCD原子性持久性一致性隔離性160未授權(quán)讀取,也稱臟讀,在數(shù)據(jù)修改的時(shí)候允許讀取授權(quán)讀取,也稱提交后讀取可重復(fù)讀?。航共豢芍貜?fù)讀取和臟讀取,但是有時(shí)可能出現(xiàn)幻讀數(shù)據(jù)。讀取數(shù)據(jù)的事務(wù)將會(huì)禁止寫事務(wù)(但允許讀事務(wù)),寫事務(wù)則禁止任何其他事務(wù)??梢酝ㄟ^“共享讀鎖”和“排他寫鎖”實(shí)現(xiàn)。序列化:提供嚴(yán)格的事務(wù)隔離。它要求事務(wù)序列化執(zhí)行,事務(wù)只能一個(gè)接著一個(gè)地執(zhí)行,不能并發(fā)執(zhí)行。僅僅通過“行級(jí)鎖”是無法實(shí)現(xiàn)事務(wù)序列化的,必須通過其他機(jī)制保證新插入的數(shù)據(jù)不會(huì)被剛執(zhí)行查詢操作的事務(wù)訪問到。幻讀不可重復(fù)事務(wù)隔離未授權(quán)讀取,也稱臟讀,在數(shù)據(jù)修改的時(shí)候允許讀取事務(wù)隔離161事務(wù)隔離臟讀事務(wù)隔離臟讀162幻讀針對(duì)多個(gè)數(shù)據(jù)事務(wù)隔離幻讀針對(duì)多個(gè)數(shù)據(jù)事務(wù)隔離163不可重復(fù)針對(duì)單個(gè)數(shù)據(jù)事務(wù)隔離不可重復(fù)針對(duì)單個(gè)數(shù)據(jù)事務(wù)隔離164臟讀讀取了另一個(gè)事務(wù)未提交的數(shù)據(jù)事務(wù)隔離臟讀讀取了另一個(gè)事務(wù)未提交的數(shù)據(jù)事務(wù)隔離165數(shù)據(jù)庫(kù)設(shè)計(jì)范式單擊此處添加標(biāo)題9,300Million第一范式:所有的字段都是最小的,不可拆分;例如高級(jí)職稱可分為教授與副教授(不符合第一范式)第二范式:表中所有列都依賴于主鍵,也就是說一張表只描述一件事情第三范式:數(shù)據(jù)不能存在傳遞關(guān)系,例如:學(xué)號(hào),班級(jí)就是屬于傳遞單擊此處輸入你的正文,文字是您思想的提煉,為了最終演示發(fā)布的良好效果,請(qǐng)盡量言簡(jiǎn)意賅的闡述觀點(diǎn);根據(jù)需要可酌情增減文字,以便觀者可以準(zhǔn)確理解您所傳達(dá)的信息。數(shù)據(jù)庫(kù)設(shè)計(jì)范式單擊此處添加標(biāo)題9,300Million第一16604加密04加密167加密與解密都使用同一個(gè)秘鑰,只有一個(gè)秘鑰,稱為私鑰DES算法AES算法3DES算法對(duì)稱加密加密與解密都使用同一個(gè)秘鑰,只有一個(gè)秘鑰,稱為私鑰DES168加密與解密使用不同的秘鑰,公鑰和私鑰(互為解密)RSAECC非對(duì)稱加密加密與解密使用不同的秘鑰,公鑰和私鑰(互為解密)RSA非對(duì)稱16905分布式架構(gòu)05分布式架構(gòu)170mysql分庫(kù)分表CAPConsistency(一致性)Availability(可用性)Partitiontolerance(分區(qū)容錯(cuò)性)分布式架構(gòu)mysql分庫(kù)分表分布式架構(gòu)17106虛擬機(jī)06虛擬機(jī)172虛擬機(jī)Native方法棧01程序計(jì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市場(chǎng)推廣居間合同模板
- 項(xiàng)目可行性研究報(bào)告的框架
- 農(nóng)民土地流轉(zhuǎn)及規(guī)模經(jīng)營(yíng)實(shí)施方案
- 涵洞施工安全措施
- 建筑規(guī)范設(shè)計(jì)
- 三農(nóng)村基層民主決策機(jī)制完善方案
- 光伏發(fā)電項(xiàng)目可研報(bào)告
- 三農(nóng)創(chuàng)業(yè)項(xiàng)目策劃手冊(cè)
- 2025年燃?xì)廨斉湓O(shè)備項(xiàng)目建議書
- 植物園綠化養(yǎng)護(hù)方案
- GB/T 30133-2022一次性衛(wèi)生用品用面層
- GB/T 20878-2007不銹鋼和耐熱鋼牌號(hào)及化學(xué)成分
- 部編版小學(xué)語文三年級(jí)下冊(cè)書法教案設(shè)計(jì)(全冊(cè))
- 胎動(dòng)不安課件
- 雙重預(yù)防體系建設(shè)全套文件非煤礦山
- 文件袋、檔案袋密封條模板
- 皮內(nèi)注射技術(shù)操作考核評(píng)分標(biāo)準(zhǔn)
- 加油站重大風(fēng)險(xiǎn)清單
- 大唐大慈恩寺三藏法師傳白話本(整理壓縮版)
- ?;芳佑图託庹救?xì)馄髽I(yè)安全隱患排查手冊(cè)
- 某電廠330MW機(jī)組八級(jí)熱力系統(tǒng)及管道通流部分的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論