<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    I want to fly higher
    programming Explorer
    posts - 114,comments - 263,trackbacks - 0

    Java基礎(chǔ)技術(shù)體系

    • Java7,Java8,Java9
      • coin/invokedynamic/g1/nio2/fork-join/
      • Lambda/interface-static-default/function/stream/Nashorn/time
      • Jigsaw/jshell(REPL)/JMH benchmark/進(jìn)程api/jsonapi/
    • OpenJDK
      • 源代碼-最好的代碼參考
    • Java內(nèi)存模型/并發(fā)/多線程
      • 內(nèi)存模型
        • 計(jì)算機(jī)系統(tǒng)#緩存一致性
          • 每個(gè)處理器有自己的高速緩存,他們又共享同一主內(nèi)存;當(dāng)多個(gè)處理器都涉及同一塊主內(nèi)存區(qū)域時(shí),將可能導(dǎo)致各自的緩存數(shù)據(jù)不一致,那同步到主內(nèi)存時(shí)以誰(shuí)的緩存數(shù)據(jù)為準(zhǔn)呢
        • 在特定的操作協(xié)議下,對(duì)特定的內(nèi)存或者高速緩存進(jìn)行讀寫訪問的過程抽象
        • 指令重排序
        • Java內(nèi)存模型-主內(nèi)存與工作內(nèi)存(每條線程有自己的工作內(nèi)存)
          • 線程的工作內(nèi)存中保存了被該線程使用到的變量的主內(nèi)存副本拷貝
          • 線程對(duì)變量的所有操作都必須在工作內(nèi)存中進(jìn)行,而不能直接讀寫主內(nèi)存的變量
          • 不同的線程之間之間也無(wú)法直接訪問對(duì)方工作內(nèi)存的變量
          • 線程間變量的傳遞均需要通過主內(nèi)存來完成
          • lock/unlock/read/load/use/assign/store/write-每一種操作都是原子的,不可再分的(注意double/long)
        • volatile
          • 保證可見性
          • 禁止指令重排序優(yōu)化-內(nèi)存屏障
        • 先行發(fā)生原則
      • 工作竊取算法(Fork/Join)
      • 原子性、可見性、有序性(如果在本線程內(nèi)觀察,所有操作都是有序的;如果在一個(gè)線程中觀察另一個(gè)線程,所有操作都是無(wú)序的)

    工作竊取(work-stealing)算法是指某個(gè)線程從其他隊(duì)列里竊取任務(wù)來執(zhí)行。
    那么為什么需要使用工作竊取算法呢?假如我們需要做一個(gè)比較大的任務(wù),我們可以把這個(gè)任務(wù)分割為若干互不依賴的子任務(wù),為了減少線程間的競(jìng)爭(zhēng),于是把這些子任務(wù)分別放到不同的隊(duì)列里,并為每個(gè)隊(duì)列創(chuàng)建一個(gè)單獨(dú)的線程來執(zhí)行隊(duì)列里的任務(wù),線程和隊(duì)列一一對(duì)應(yīng),比如A線程負(fù)責(zé)處理A隊(duì)列里的任務(wù)。但是有的線程會(huì)先把自己隊(duì)列里的任務(wù)干完,而其他線程對(duì)應(yīng)的隊(duì)列里還有任務(wù)等待處理。干完活的線程與其等著,不如去幫其他線程干活,于是它就去其他線程的隊(duì)列里竊取一個(gè)任務(wù)來執(zhí)行。而在這時(shí)它們會(huì)訪問同一個(gè)隊(duì)列,所以為了減少竊取任務(wù)線程和被竊取任務(wù)線程之間的競(jìng)爭(zhēng),通常會(huì)使用雙端隊(duì)列,被竊取任務(wù)線程永遠(yuǎn)從雙端隊(duì)列的頭部拿任務(wù)執(zhí)行,而竊取任務(wù)的線程永遠(yuǎn)從雙端隊(duì)列的尾部拿任務(wù)執(zhí)行。工作竊取算法的優(yōu)點(diǎn)是充分利用線程進(jìn)行并行計(jì)算,并減少了線程間的競(jìng)爭(zhēng),其缺點(diǎn)是在某些情況下還是存在競(jìng)爭(zhēng),比如雙端隊(duì)列里只有一個(gè)任務(wù)時(shí)。并且消耗了更多的系統(tǒng)資源,比如創(chuàng)建多個(gè)線程和多個(gè)雙端隊(duì)列。
    

    • JVM
      • 內(nèi)存區(qū)域
      • gc
      • 工具
      • 調(diào)優(yōu)
    • Class/Bytecode/Classloader
      • hotswap
      • 加載、驗(yàn)證、準(zhǔn)備、解析、初始化
      • agent/instrumentation
        • agentmain-jvm啟動(dòng)后可以通過代理做一些事情
        • Instrumentation#redefineClasses,可以重定義class->而非之前實(shí)例替換->動(dòng)態(tài)改變JVM已加載的類(這個(gè)很強(qiáng)大)
        • 可通過agentmain獲得Instrumentation,然后利用Instrumentation去redefineClasses
    • 多語(yǔ)言編程
      • invokedynamic/java.lang.invoke

    架構(gòu)

    • 分布式服務(wù)器架構(gòu)
      • 應(yīng)用和數(shù)據(jù)服分離/使用緩存/應(yīng)用服務(wù)器集群/數(shù)據(jù)庫(kù)讀寫分離/反向代理-CDN/分布式文件系統(tǒng)-分布式數(shù)據(jù)庫(kù)系統(tǒng)/NoSql-搜索引擎/業(yè)務(wù)拆分/分布式服務(wù)/
      • 分層
        • 橫向:應(yīng)用層、服務(wù)層、數(shù)據(jù)層
        • 縱向:將不同的功能和服務(wù)分割,模塊化
      • 分布式
        • 將不同的模塊部署在不同的機(jī)器上,通過遠(yuǎn)程調(diào)用協(xié)同工作
      • 集群
        • 將多臺(tái)服務(wù)器部署相同應(yīng)用構(gòu)成一個(gè)集群,通過負(fù)載均衡設(shè)備共同對(duì)外提供服務(wù)
      • 緩存
        • 本地緩存/分布式緩存/CDN/反向代理
      • 異步
      • 冗余
      • 自動(dòng)化
      • 架構(gòu)要素
        • 性能、可用性、伸縮性、擴(kuò)展性、安全
          • 響應(yīng)時(shí)間、并發(fā)數(shù)、吞吐量、SystemLoad、對(duì)象數(shù)與線程數(shù)、內(nèi)存使用、cpu使用、io、性能測(cè)試、負(fù)載測(cè)試、壓力測(cè)試、穩(wěn)定性測(cè)試
    • mmo游戲服務(wù)器架構(gòu)
      • 分線/分場(chǎng)景
      • 動(dòng)態(tài)的增加或者減少gs
      • 網(wǎng)關(guān)可動(dòng)態(tài)的增加或者減少
    • 無(wú)縫地圖
      • NODE專注場(chǎng)景,OBJ專注玩家對(duì)象,GATE專注網(wǎng)絡(luò)
      • 動(dòng)態(tài)負(fù)載均衡
      • 很多無(wú)縫動(dòng)態(tài)負(fù)載均衡的服務(wù)端宣稱自己支持無(wú)限的人數(shù),但不意味著 MMORPG游戲的人數(shù)上限真的可以無(wú)限擴(kuò)充,因?yàn)檫@樣的體系會(huì)受制于網(wǎng)絡(luò)帶寬和客戶端性能。帶寬決定了同一個(gè)區(qū)域最大廣播上限,而客戶端性能決定了同一個(gè)屏幕到底可以繪制多少個(gè)角色

    模式

    • 架構(gòu)模式
      • 背景-問題-解決方案
      • Layers模式-分層-網(wǎng)絡(luò)協(xié)議
      • Pipes and Filters-處理數(shù)據(jù)流
      • Blackboard-一系列獨(dú)立的程序攜手合作,致力于處理同一個(gè)數(shù)據(jù)結(jié)構(gòu)
      • Microkernel
      • Broker
      • MVC/PAC
      • Reflection
      • Whole-Part/Master-Slave/Proxy/Command Processor/View Handler/Forwarder-Receiver/Client-Dispatcher-Server/publisher-subscriber/
      • CounterPointer
      • 抽象、封裝、信息隱藏、模塊化、分離關(guān)注點(diǎn)、耦合與內(nèi)聚、充分-完整-簡(jiǎn)單、策略與實(shí)現(xiàn)分離、接口與實(shí)現(xiàn)分離、單個(gè)引用點(diǎn)、分而治之
      • 并發(fā):Reactor/Proactor/Acceptor-Connector/Aysnchronous Completion Token/Active Object/Thread-Speific Storage
      • 資源管理:Loopup/Lazy Acquisition/Caching/Pooling/Resouce Lifecycle Manager/
    • 設(shè)計(jì)模式
      • 23
    • 面向?qū)ο笤O(shè)計(jì)原則
      • solid
      • 抽象、解耦、開閉

    網(wǎng)絡(luò)編程/并發(fā)編程

    • bio/nio/nio2
    • netty
    • select/poll/epoll/kqueue/iocp/reactor/proactor
    • java.util.concurrent

    調(diào)優(yōu)

    • cpu、內(nèi)存、io
    • jvm調(diào)優(yōu)
    • 內(nèi)存泄露、死循環(huán)

    Mysql/NoSql

    • redis
    • mongodb
    • mongodb是一個(gè)真正的數(shù)據(jù)庫(kù)而,redis更接近于memcache
    • mongodb是文檔型的非關(guān)系型數(shù)據(jù)庫(kù),其優(yōu)勢(shì)在于查詢功能比較強(qiáng)大,能存儲(chǔ)海量數(shù)據(jù)
    • nosql也分類型的;redis、memcached這樣的KeyValue天然適合做緩存,相互替代比較容易,優(yōu)缺點(diǎn)彼此爭(zhēng)論不一;mongo屬于文檔型,介于nosql與關(guān)系型數(shù)據(jù)庫(kù)之間,相比其他nosql,具有強(qiáng)大的查詢語(yǔ)句,在一定程度上可以用來存儲(chǔ)海量、需要多條件查詢同時(shí)又不需要關(guān)系型數(shù)據(jù)庫(kù)特性的“文檔”,反正我用他來存日志

    Linux

    • shell
    • vim
    • grep
    • 分析日志文件/啟動(dòng)-關(guān)閉腳本
    • top、ps、netstat

    開源框架

    • Netty/Disruptor/Vert.x/Kafka/RocketMq/Nginx

    Node.js/Go

    • Go-Goroutine
    • Node.js-事件驅(qū)動(dòng)、非阻塞式I/O

    前沿技術(shù)

    • 微服務(wù)
    posted on 2016-11-04 11:58 landon 閱讀(2975) 評(píng)論(0)  編輯  收藏 所屬分類: ProgramGameServerServerFramework
    主站蜘蛛池模板: 亚洲免费网站观看视频| 成全视成人免费观看在线看| 国产成人亚洲综合一区| 一级毛片大全免费播放下载 | 久久久久久AV无码免费网站 | 亚洲中文字幕一区精品自拍| 怡红院免费的全部视频| 黑人粗长大战亚洲女2021国产精品成人免费视频| 亚洲M码 欧洲S码SSS222| 亚洲高清中文字幕综合网| 香港特级三A毛片免费观看| 91免费在线播放| 亚洲综合在线另类色区奇米| 亚洲精华液一二三产区| 0588影视手机免费看片| 亚洲国产精品乱码在线观看97| baoyu122.永久免费视频| 国产v亚洲v天堂无码网站| 色妞www精品视频免费看| 亚洲精品国精品久久99热| 亚洲人成网站色7799| 国产免费拔擦拔擦8x| 亚洲宅男精品一区在线观看| 亚洲视频免费在线观看| 亚洲国产成人精品无码区在线秒播 | 精品视频免费在线| 最近中文字幕mv手机免费高清| 亚洲美女视频一区| 好爽…又高潮了免费毛片| 亚洲国产一区在线观看| 宅男666在线永久免费观看| 亚洲国产成人无码AV在线| 亚洲精品乱码久久久久久不卡| 久久久久久久久久国产精品免费| 亚洲最大福利视频| 亚洲国产精品一区二区九九| 18禁成人网站免费观看| 亚洲最大在线观看| 国产成人无码免费视频97 | 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 亚洲AV午夜成人片|