2018-09-28

redis

持久化:AOF/RDB

IO多路復(fù)用:select epoll evport kqueue

Nmap 虛擬內(nèi)存 內(nèi)存映射

網(wǎng)絡(luò)轉(zhuǎn)換 分發(fā)

binlog記錄過程

redis 的AOF 只記錄結(jié)果

內(nèi)存數(shù)據(jù)結(jié)構(gòu) 支持更多的數(shù)據(jù)結(jié)構(gòu) 相對于memcached

linux

pgm -A `armory -leg projectnamehost` "grep 'Exception' /home/admin/projectname/logs/service.log"

BIONIOAIO

BIONIOAIO

aone/spring/maven

aone

  • 構(gòu)建:分支合并、編譯

  • 打二方包

  • 部署

  • 發(fā)布

  • 代碼規(guī)約

  • 集成測試

    構(gòu)建常見的問題:

    1. 環(huán)境變量缺失
    2. 多分支構(gòu)建時,找不到某個類的某個方法/某個變量,但是本地編譯ok柑土,啥原因辑畦?

分批發(fā)布:保持對外提供的服務(wù)在線匣砖,不影響線上使用偎肃;

第一批暫定:觀察煞烫,看日志,

## alitomcat&pandora

  1. tomcat原理

    啟動時會加載自己lib/庫累颂,以及應(yīng)用程序的lib滞详,以及應(yīng)用程序類class。

    自身類庫與應(yīng)用程序所依賴類庫的隔離紊馏,如何實(shí)現(xiàn)的料饥?

    通過類加載器實(shí)現(xiàn)的

    jvm的3種加載器:啟動類加載器、擴(kuò)展加載器朱监、系統(tǒng)加載器

    jsp是怎么被編譯的岸啡,加載器的機(jī)制是怎么樣的?

    jsp是一個servlet赫编,被類加載器加載

  2. Spring-boot與tomcat的關(guān)系

    spring-boot集成了tomcat巡蘸,所以spring-boot可以直接執(zhí)行main()函數(shù)進(jìn)行啟動,或者執(zhí)行jar相關(guān)命令即可

    而傳統(tǒng)的tomcat啟動方式沛慢,需要依賴startup.sh啟動腳本

    spring-boot

    的優(yōu)點(diǎn)和缺點(diǎn)赡若?優(yōu)點(diǎn)很多,總結(jié)成一句話—減少各種配置团甲、集成時間逾冬,提高開發(fā)和調(diào)試效率

  3. war包結(jié)構(gòu)

    web應(yīng)用打成war包之后,tomcat在部署時會先對其解壓躺苦,解壓后形成webapp/WEB-INF/classes和webapp*/WEB-INF/lib身腻,classes下面放的是你的java包。

    spring-boot之后匹厘,我們打的是jar包嘀趟,解壓生成的是webapp**/BOOT-INF

    發(fā)布完成之后,需要去服務(wù)器上看看這個目錄愈诚,尤其是lib目錄她按。尤其是當(dāng)出現(xiàn)jar包沖突時,更要看看炕柔,是否真的有兩個一樣的jar包在該目錄下

HSF(同步調(diào)用)

hsf定義:添加hsf注解

hsf消費(fèi):spring-boot:在config中通過@Consumer注解定義

注意:

  1. 確定好自己服務(wù)的超時時間酌泰,一般是3秒;時間過長匕累,占用連接池陵刹,阻塞應(yīng)用
  2. 異常處理,hsf接口返回值一般都封裝為result欢嘿。為什么要封裝衰琐?和http訪問一樣也糊,status,定義友好的返回信息
  3. 調(diào)用hsf服務(wù)時羡宙,要先判斷result.isSuccess狸剃,接下來判斷result.data是否為null或者列表是否為空,否則可能NPE
  4. 循環(huán)調(diào)用:循環(huán)調(diào)用別人的hsf服務(wù)時辛辨,要控制循環(huán)次數(shù)捕捂,如果超過20次,容易把別人的hsf線程池打爆斗搞。如何解決指攒?循環(huán)要控制次數(shù)
  5. 限流與降級:大促期間根據(jù)qps,進(jìn)行限流和降級僻焚。
  6. 入?yún)⒋笮】刂疲喝绻嫌握{(diào)用時傳入的參數(shù)很大允悦,如果調(diào)用很頻繁、并且內(nèi)部處理很耗時虑啤,會導(dǎo)致什么結(jié)果隙弛?頻繁GC、甚至引發(fā)FGC狞山,并造成hsf線程池被打爆全闷,使整個系統(tǒng)不可用。如果入?yún)⒄娴暮艽笃计簦趺刺幚?/li>

metaq(異步調(diào)用)

  1. 同一個topic总珠,但是不同應(yīng)用消費(fèi)不同的內(nèi)容,需要加tag勘纯,形成topic+tag兩級標(biāo)識局服。特別是tag,直接在mq服務(wù)端就進(jìn)行過濾驳遵,不需要push到客戶端

  2. 消息風(fēng)暴:如果編程不當(dāng)淫奔,或者消費(fèi)業(yè)務(wù)本身就很復(fù)雜,消費(fèi)一次要處理很久堤结,導(dǎo)致本次消費(fèi)還沒結(jié)束唆迁,服務(wù)器以為消費(fèi)失敗,于是重發(fā)消息竞穷,從而導(dǎo)致應(yīng)用服務(wù)器消息堆積唐责。這種堆積是指數(shù)級的,很快就會把應(yīng)用搞掛来庭。通過mq控制臺可以看消息堆積量妒蔚。解決辦法:重啟服務(wù)器穿挨;如果消息過多月弛,重啟消息服務(wù)器不行的話肴盏,到消息平臺,先清空消息帽衙。

    在代碼中如何避免菜皂?先返回給用戶成功,然后異步去處理厉萝;或者構(gòu)建緩存區(qū)恍飘,來處理用戶的請求和消息

diamond

  1. 原理

    基于推拉模式,主要基于拉

    長連接和短連接的原理是啥谴垫? 需要看底層

    http協(xié)議章母,1.1開始就是長連接;長連接表示keepLive

    長短連接的優(yōu)缺點(diǎn)翩剪?

    長連接:建立連接之后乳怎,不斷開;優(yōu)點(diǎn):交流方便前弯;缺點(diǎn):連接是系統(tǒng)資源蚪缀,占用系統(tǒng)內(nèi)存

    一臺linux服務(wù)器支持的最大連接數(shù)是

    diamond

  2. double check 兩次檢查

    解析:文本按換行符split,遍歷數(shù)組恕出,轉(zhuǎn)換成對象或map

    (1)推送開關(guān)時询枚,必須要double check

    (2)解析開關(guān)值時,要注意健壯性浙巫。特例:

    若一個開關(guān)包含多個參數(shù)金蜀,如果其中一個解析失敗,會帶來什么問題狈醉,如何解決廉油?

JVM內(nèi)存

  1. jvm內(nèi)存

三大塊:堆 棧 方法區(qū)

so,有哪幾種oom場景苗傅?

堆的溢出抒线、棧溢出、方法溢出

棧:方法調(diào)用是引用棧內(nèi)存渣慕,無限調(diào)用

方法區(qū):

堆:

只要有一個溢出嘶炭,jvm就會直接退出

  1. 常見問題

    查詢DB沒做分頁,導(dǎo)致頻繁GC甚至FGC

    接受參數(shù)太大逊桦,并且QPS高眨猎,直接將系統(tǒng)搞死

    死循環(huán),導(dǎo)致stack oom

    批處理耗時强经,并且QPS較高睡陪,系統(tǒng)load飆升,假死

  2. JVM問題排查

    top, jmap兰迫, jstack信殊, jps, load汁果, rt...

    各個工具怎么用涡拘,用來分析什么問題?

  3. 舉例

    某個hsf請求處理很耗時据德,并且占用大量資源鳄乏,怎么快速定位?

    top -h 那個線程跑的最多棘利,最耗時

    jstack 根據(jù)pid橱野,看對應(yīng)那個類

 ## tair(緩存)

 * 如何保證tair與db之間的一致性?



 * tair異常:寫成功善玫,讀不到仲吏,啥原因?

 tair滿了蝌焚,寫不進(jìn)去

 * tair失效:一定要進(jìn)行失效機(jī)制裹唆,這是保證數(shù)據(jù)一致性的根本措施。容忍短時間內(nèi)的數(shù)據(jù)不一致性只洒,但是絕不允許長時間不一致
 * 寫>讀的場景下许帐,是否要使用tair?不需要
 * 本地cache:tair自帶本地cache熱點(diǎn)數(shù)據(jù)功能毕谴,但是必須根據(jù)業(yè)務(wù)特點(diǎn)設(shè)置何時的失效期
 * 緩存分流:多個系統(tǒng)如果都依賴basic系統(tǒng)的緩存數(shù)據(jù)成畦,當(dāng)QPS很大時,basic系統(tǒng)因?yàn)閠air訪問流量過大觸發(fā)tair限流涝开,導(dǎo)致basic頻繁讀取DB循帐,造成性能降低,如何破解舀武?

 重復(fù)訪問少拄养,緩存命中概率低





 ## mysql

 b+tree的結(jié)構(gòu)是啥?為啥比其他樹快

 status字段能建索引嗎银舱?不需要鍵瘪匿,因?yàn)闋顟B(tài)值比較少

 批量查詢時,limit start step查詢?nèi)绾翁嵘? id寻馏,order by, 100w條的時候棋弥,需要注意



 ## eagleeye(鷹眼)

 load cpu時間片 任務(wù)

 在一個時間片內(nèi)沒做完,又來一個任務(wù)诚欠,load+1

 一個時間片時間沒到就做完了顽染,load=0



 load/qps的關(guān)系:

 qps高漾岳,load一定高嗎?

 load的含義是啥

 如何設(shè)計(jì)程序粉寞,使qps即使很低蝗羊,load也很高

 4核處理器上,load的健康值是多少

 正常業(yè)務(wù)系統(tǒng)的qps健康值是多少

 正常業(yè)務(wù)系統(tǒng)的線程數(shù)量是多少

服務(wù)治理框架

 hsf:

序列化 hessian 支持跨語言仁锯,速度慢

dubbo序列化也是hessian2

普通的輪詢方案會給服務(wù)器帶來過多訪問壓力,而且很多時候輪詢請求都沒有配置更新翔悠,白跑一趟业崖,Diamond采用的是改進(jìn)的長輪詢方案,長短輪詢結(jié)合蓄愁,即輪詢配置是否更新時双炕,使用長輪詢,減少配置沒更新時無意義的訪問撮抓;在獲取配置時妇斤,使用短輪詢,及時獲取配置丹拯。

基于Http長輪詢模型站超,這樣減少了無意義的輪詢請求量,提高了輪詢的效率乖酬;也降低了系統(tǒng)負(fù)載死相,提升了整個系統(tǒng)的資源利用率。這種推拉結(jié)合的策略咬像,做到了在長連接和短連接之間的平衡算撮,實(shí)現(xiàn)上讓服務(wù)端不用太關(guān)注連接的管理,效果上又獲得了類似TCP長連接的信息推送的實(shí)時性县昂。由于輪詢之間的間隔肮柜,無法保證連續(xù)的配置更新,都會被客戶端接受倒彰,但最后一次的配置更新一定會被客戶端接受到审洞,例如發(fā)布了A B C 配置,可能客戶端只接受到了 A C待讳,也可能只接受到 B C预明,或者只接收到 C。

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耙箍,一起剝皮案震驚了整個濱河市撰糠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辩昆,老刑警劉巖阅酪,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡术辐,警方通過查閱死者的電腦和手機(jī)砚尽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辉词,“玉大人必孤,你說我怎么就攤上這事∪鹛桑” “怎么了敷搪?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長幢哨。 經(jīng)常有香客問我赡勘,道長,這世上最難降的妖魔是什么捞镰? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任闸与,我火速辦了婚禮,結(jié)果婚禮上岸售,老公的妹妹穿的比我還像新娘践樱。我一直安慰自己,他們只是感情好凸丸,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布映胁。 她就那樣靜靜地躺著,像睡著了一般甲雅。 火紅的嫁衣襯著肌膚如雪解孙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天抛人,我揣著相機(jī)與錄音弛姜,去河邊找鬼。 笑死妖枚,一個胖子當(dāng)著我的面吹牛廷臼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绝页,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼荠商,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了续誉?” 一聲冷哼從身側(cè)響起莱没,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酷鸦,沒想到半個月后饰躲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牙咏,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年嘹裂,在試婚紗的時候發(fā)現(xiàn)自己被綠了妄壶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡寄狼,死狀恐怖丁寄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泊愧,我是刑警寧澤伊磺,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站拼卵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛮艰。R本人自食惡果不足惜腋腮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壤蚜。 院中可真熱鬧即寡,春花似錦、人聲如沸袜刷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽著蟹。三九已至墩蔓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間萧豆,已是汗流浹背奸披。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涮雷,地道東北人阵面。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像洪鸭,于是被迫代替她去往敵國和親样刷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348