應(yīng)用后臺(tái)進(jìn)程的意義不同于系統(tǒng)后臺(tái)進(jìn)程,系統(tǒng)后臺(tái)進(jìn)程指的是系統(tǒng)守護(hù)進(jìn)程等,應(yīng)用后臺(tái)進(jìn)程指的是應(yīng)用系統(tǒng)中獨(dú)立部署的一種進(jìn)程,一般此類進(jìn)程大多按功能點(diǎn)劃分部署,一個(gè)進(jìn)程實(shí)現(xiàn)一個(gè)功能點(diǎn)。
使用后臺(tái)進(jìn)程的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):通過(guò)后臺(tái)進(jìn)程實(shí)現(xiàn)功能的解耦,當(dāng)業(yè)務(wù)需求變更時(shí),只需要找到對(duì)應(yīng)功能的進(jìn)程進(jìn)行代碼更新即可,且便于版本上線發(fā)布;
缺點(diǎn):業(yè)務(wù)復(fù)雜且變更頻繁的系統(tǒng),會(huì)產(chǎn)生大量的后臺(tái)進(jìn)程,不便于后期維護(hù)管理;
以某運(yùn)營(yíng)商為例,筆者剛接手生產(chǎn)系統(tǒng)維護(hù)時(shí),維護(hù)范圍包括2000多的后臺(tái)進(jìn)程維護(hù),但沒(méi)有任何的資料,進(jìn)程的功能用途全都在前輩的腦海里。
1、梳理后臺(tái)進(jìn)程信息
該項(xiàng)工作前期花費(fèi)筆者大量時(shí)間,前期跟局方多次討論后確定可能涉及的項(xiàng)目后,花費(fèi)數(shù)月的時(shí)間將分布在40余臺(tái)小機(jī)上的進(jìn)程進(jìn)程信息并整理入庫(kù)。
1 )主要梳理方法通過(guò)ps取到所有進(jìn)程的運(yùn)行目錄,然后根據(jù)目錄類啟動(dòng)腳本進(jìn)行匹配,得到進(jìn)程目錄、腳本、進(jìn)程數(shù)量、開(kāi)發(fā)語(yǔ)言、資源類等部分所需信息形成初步進(jìn)程列表。
2 )將初步進(jìn)程列表反饋給局方以及開(kāi)發(fā)商,協(xié)調(diào)其補(bǔ)充進(jìn)程信息、業(yè)務(wù)、項(xiàng)目經(jīng)理、網(wǎng)絡(luò)等信息,形成一個(gè)較為完備的進(jìn)程信息并寫入到性能基線庫(kù)的process進(jìn)程信息表,如下;
這是個(gè)排雷踩坑的過(guò)程,期間發(fā)現(xiàn)各式問(wèn)題(分享2個(gè)常見(jiàn)問(wèn)題):
1 )期間發(fā)現(xiàn)大量無(wú)人認(rèn)領(lǐng)的進(jìn)程,對(duì)于該部分進(jìn)程只能以現(xiàn)有信息入庫(kù)作為存量待補(bǔ)全進(jìn)程,在后期版本更新中慢慢補(bǔ)充;
2 )同一目錄多個(gè)進(jìn)程多個(gè)啟動(dòng)腳本且腳本之間相互有交集,對(duì)于該部分只能仔細(xì)區(qū)分同時(shí)協(xié)調(diào)開(kāi)發(fā)商測(cè)試環(huán)境進(jìn)行確認(rèn);
2、梳理完善進(jìn)程監(jiān)控
在前期進(jìn)程信息梳理基本完成后,開(kāi)發(fā)工具對(duì)主機(jī)進(jìn)程進(jìn)行管理,主要兩個(gè)方面:
1 )常駐進(jìn)程監(jiān)控,同步process表至主機(jī)比對(duì)主機(jī)實(shí)際運(yùn)行進(jìn)程情況,主要比對(duì)進(jìn)程數(shù)量、生產(chǎn)用戶以及資源使用等情況
2 )定時(shí)任務(wù)監(jiān)控,主要與process表數(shù)據(jù)對(duì)比,是否存在未經(jīng)授權(quán)或登記的任務(wù);
3、梳理進(jìn)程用途及責(zé)任人
在初步完成主機(jī)進(jìn)程整理以及監(jiān)控后,由于局點(diǎn)每月有多次上線任務(wù)且均伴有進(jìn)程上線或更新工作,經(jīng)與局方討論我們開(kāi)始對(duì)進(jìn)程涉及業(yè)務(wù)、涉及資源(數(shù)據(jù)庫(kù)、中間件、網(wǎng)絡(luò)、文件系統(tǒng)等)進(jìn)行登記及新增進(jìn)程審核等工作。
存量進(jìn)程:基于監(jiān)控項(xiàng)梳理責(zé)任人后,分別跟進(jìn)責(zé)任人確認(rèn)進(jìn)程功能用途;
新增進(jìn)程:版本上線前要求開(kāi)發(fā)側(cè)提交進(jìn)程信息,介入進(jìn)程評(píng)審管控,上線完成后對(duì)實(shí)際進(jìn)程進(jìn)行檢查;
對(duì)于進(jìn)程管理經(jīng)與局方討論,目前已明確所有進(jìn)程變更(新增、修改、下線)均要求走進(jìn)程變更流程,按下圖excel表格提供進(jìn)程信息提交維護(hù)團(tuán)隊(duì)進(jìn)行評(píng)審管理。
評(píng)審?fù)ㄟ^(guò)后將進(jìn)程信息更新入庫(kù)。
在維護(hù)后臺(tái)進(jìn)程過(guò)程中,筆者發(fā)現(xiàn)進(jìn)程故障主要有以下三種情況:
1、進(jìn)程異常掉線
對(duì)于進(jìn)程異常掉線情況,目前已做bomc監(jiān)控以及異常進(jìn)程信息入庫(kù)等
2、進(jìn)程僵死
在進(jìn)程維護(hù)中,經(jīng)常會(huì)發(fā)現(xiàn)進(jìn)程狀態(tài)或者日志等均顯示正常,但是進(jìn)程數(shù)據(jù)未得到處理,這種情況我們將其定義為僵死。該種情況目前處理辦法主要是通過(guò)添加業(yè)務(wù)監(jiān)控,發(fā)現(xiàn)數(shù)據(jù)積壓或規(guī)定時(shí)間未處理及時(shí)告警。目前該種情況筆者及同事未有較為有效的辦法進(jìn)行處理,歡迎提供意見(jiàn)。
3、處理效率不足
特殊情況下處理效率問(wèn)題主要是月頭月末關(guān)鍵進(jìn)程比如各渠道的繳費(fèi)、停開(kāi)機(jī)等數(shù)據(jù)量監(jiān)控,發(fā)現(xiàn)處理效率不夠時(shí)及時(shí)擴(kuò)容進(jìn)程個(gè)數(shù)等。
進(jìn)程信息梳理完后,標(biāo)志后臺(tái)進(jìn)程已經(jīng)納入維護(hù)管理范圍,但并非針對(duì)進(jìn)程的維護(hù)到此為止,專業(yè)的維護(hù)工程師還可以進(jìn)一步對(duì)后臺(tái)進(jìn)程進(jìn)行高可用改造及性能優(yōu)化;
1、進(jìn)程高可用
1 )對(duì)進(jìn)程進(jìn)行分級(jí),時(shí)效性要求沒(méi)有那么高,我們目前采用冷備的方式實(shí)現(xiàn)進(jìn)程高可用;
2 ) 對(duì)關(guān)鍵、實(shí)時(shí)性要求較高進(jìn)程,我們采用分布式部署;
流程說(shuō)明:
進(jìn)程調(diào)用中間件來(lái)驅(qū)動(dòng)任務(wù)處理。
中間件調(diào)用zookeeper獲取鎖,如果獲取失敗,則等待一定時(shí)間,再次嘗試。
獲取鎖成功后,查詢數(shù)據(jù),將取出的數(shù)據(jù)狀態(tài)修改為處理中。
中間件調(diào)用zookeeper釋放鎖。
邏輯處理。
2、數(shù)據(jù)源高可用
考慮當(dāng)出現(xiàn)數(shù)據(jù)庫(kù)單節(jié)點(diǎn)故障時(shí),支持進(jìn)程failover自動(dòng)切換,同時(shí)采用LDAP實(shí)現(xiàn)數(shù)據(jù)源的統(tǒng)一管理。
1 )在所有進(jìn)程主機(jī)上配置優(yōu)先使用ldap獲取tnsname
) 將tnsname配置為支持failover自動(dòng)切換
3、進(jìn)程的分類分機(jī)器部署
為了方便進(jìn)程的管理,我們按進(jìn)程所屬業(yè)務(wù)分類,將一類業(yè)務(wù)的進(jìn)程都集中部署到指定的幾臺(tái)機(jī)器,提升可維護(hù)性。
目前共計(jì)部署有54臺(tái)進(jìn)程主機(jī),共計(jì)分16類業(yè)務(wù)主要包括集團(tuán)業(yè)務(wù)、工單發(fā)送、后臺(tái)批量、短信等
4、后臺(tái)進(jìn)程之守護(hù)進(jìn)程
后臺(tái)進(jìn)程的守護(hù)進(jìn)程是指通過(guò)定時(shí)任務(wù)的方式定時(shí)探測(cè)后臺(tái)進(jìn)程狀態(tài)是否存活,如狀態(tài)異常則立即重啟后臺(tái)進(jìn)程。
使用守護(hù)進(jìn)程的優(yōu)點(diǎn)是異常自愈,缺點(diǎn)是異常處理不夠健壯的進(jìn)程,出現(xiàn)故障時(shí)容易反復(fù)掉線。守護(hù)進(jìn)程反復(fù)重啟,可能會(huì)掩蓋掉進(jìn)程的監(jiān)控告警,不便于運(yùn)維人員及時(shí)發(fā)現(xiàn)異常。
因此筆者維護(hù)的系統(tǒng)一般在開(kāi)發(fā)商修復(fù)過(guò)程中使用,其他情況不推薦使用守護(hù)進(jìn)程。
1、后臺(tái)進(jìn)程的批量啟停,批量啟停筆者分了兩種場(chǎng)景
1 )按機(jī)器全停,該場(chǎng)景適用于大型割接,局點(diǎn)業(yè)務(wù)全停
2 )部分資源割接,涉及指定進(jìn)程,該部分通過(guò)process表配置啟停任務(wù)程序自動(dòng)處理;
2、數(shù)據(jù)源切換
配置進(jìn)程failover自動(dòng)切換,同時(shí)采用LDAP實(shí)現(xiàn)數(shù)據(jù)源的統(tǒng)一管理
3、平臺(tái)查詢功能
目前可以通過(guò)自動(dòng)化平臺(tái)查詢各進(jìn)程相關(guān)信息等
后臺(tái)進(jìn)程作為應(yīng)用系統(tǒng)中的一種類型,維護(hù)思路與中間件等其它應(yīng)用大同小異。由于筆者維護(hù)系統(tǒng)的特殊性,后臺(tái)進(jìn)程非常多,且變更頻繁。在初期維護(hù)過(guò)程中走了不少?gòu)澛罚卮丝偨Y(jié)下經(jīng)驗(yàn)分享給大家。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/130107.html
摘要:誕生之初,是單線程的。當(dāng)接收到服務(wù)端的響應(yīng)之后,便通過(guò)回調(diào)函數(shù)執(zhí)行之后的操作。沖鋒基于事件驅(qū)動(dòng)。擁有攔截請(qǐng)求消息推送靜默更新地理圍欄等服務(wù)。控制時(shí)處于兩種狀態(tài)之一終止以節(jié)省內(nèi)存監(jiān)聽(tīng)獲取和消息事件。支持的所有事件五銷毀瀏覽器決定是否銷毀。 這次體驗(yàn)一種新的博客風(fēng)格,我們長(zhǎng)話短說(shuō),針針見(jiàn)血。 showImg(https://segmentfault.com/img/remote/14600...
摘要:宏巍電商軟件是在阿里體系內(nèi)使用他們的,然后在上用多進(jìn)程做的集群,端和接口系統(tǒng)都是使用語(yǔ)言實(shí)現(xiàn)的。宏巍電商軟件架構(gòu)我們嘗試過(guò)很多方法來(lái)進(jìn)行線程狀態(tài)的監(jiān)控,比如開(kāi)始時(shí)使用等工具來(lái)讀取的狀態(tài),同時(shí)也嘗試用過(guò)的,但都不能滿足電商產(chǎn)品性能監(jiān)控需求。 宏巍軟件 許向 大家好,我是上海宏巍信息技術(shù)有限公司(簡(jiǎn)稱:宏巍軟件)的許向,宏巍軟件成立于2005年,是一家以電商ERP軟件開(kāi)發(fā)為主的高新技術(shù)科技...
摘要:由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器。鏡像實(shí)際是由多層文件系統(tǒng)聯(lián)合組成。容器可以被創(chuàng)建啟動(dòng)停止刪除暫停等。容器的實(shí)質(zhì)是進(jìn)程,但與直接在宿主執(zhí)行的進(jìn)程不同,容器進(jìn)程運(yùn)行于屬于自己的獨(dú)立的命名空間。 Docker簡(jiǎn)介 Docker 使用 Google 公司推出的 Go 語(yǔ)言 進(jìn)行開(kāi)發(fā)實(shí)現(xiàn),基于 Linux 內(nèi)核的 cgroup,namespace,以及 AUFS ...
摘要:使用或者時(shí),調(diào)用設(shè)置優(yōu)先級(jí),否則仍然會(huì)降低程序響應(yīng),因?yàn)槟J(rèn)的優(yōu)先級(jí)和主線程相同。使用處理工作線程結(jié)果,而不是使用或者來(lái)阻塞主線程。目錄介紹 1.ANR簡(jiǎn)單介紹 2.ANR發(fā)生場(chǎng)景 3.ANR發(fā)生的原理 4.ANR有哪些具體案例 5.ANR具體如何分析 6.解決方案 7.ANR問(wèn)題解答 好消息 博客筆記大匯總【16年3月到至今】,包括Java基礎(chǔ)及深入知識(shí)點(diǎn),Android技術(shù)博客,P...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20