新博課主要用于記錄一些系列的技術(shù)文章,今年的一個(gè)目標(biāo)就是深入研究JVM底層,我會(huì)把一些學(xué)習(xí)心得記錄下來,也歡迎大家一起討論~
posted @ 2020-04-18 10:12 楊羅羅 閱讀(224) | 評(píng)論 (0) | 編輯 收藏
博客做了遷移,新的地址:觀云的BLOG https://yeas.fun/
新博課主要用于記錄一些系列的技術(shù)文章,今年的一個(gè)目標(biāo)就是深入研究JVM底層,我會(huì)把一些學(xué)習(xí)心得記錄下來,也歡迎大家一起討論~ posted @ 2020-04-18 10:12 楊羅羅 閱讀(224) | 評(píng)論 (0) | 編輯 收藏 現(xiàn)在網(wǎng)絡(luò)那么發(fā)達(dá),我們上網(wǎng)的每個(gè)人勢(shì)必會(huì)在各個(gè)網(wǎng)站上登陸,那勢(shì)必會(huì)有一堆密碼需要管理,那怎么能記住那么多網(wǎng)站的密碼呢?我之前的做法是設(shè)置幾個(gè)常用的密碼,好多不重要的網(wǎng)站用一個(gè),重要的網(wǎng)站用一個(gè),然后...CSDN密碼泄露之后,只得吭哧吭哧的改一堆密碼。那種痛苦真的是呵呵呵 那有沒有什么方式可以方便的管理密碼呢?那就是LastPass的工作,它是一款跨平臺(tái)密碼管理軟件。你在每個(gè)網(wǎng)站上都可以隨機(jī)生成一個(gè)密碼,然后軟件會(huì)自動(dòng)記住,你只需要記住這個(gè)軟件的主密碼就可以了。超方便! 為什么要用LastPass?我用LastPass,是因?yàn)樗梢园惭b瀏覽器插件,之后你在網(wǎng)站的注冊(cè),它會(huì)自動(dòng)提醒你要不要加入它的密碼庫,你在網(wǎng)站的登陸它會(huì)自動(dòng)幫你填寫賬號(hào)密碼,甚至于一些常用的表單(比如說身份證、公司地址、銀行卡等)你可以提前設(shè)置好,它也會(huì)自動(dòng)幫你填寫,我再也不用記那么多密碼了,一切都是自動(dòng)化。 如果你經(jīng)常有國外的帳號(hào),比如說google等大公司,LastPass甚至提供了一鍵改密碼的功能,好方便! 支持智能手機(jī)么?當(dāng)然!現(xiàn)在智能機(jī)那么流行,不能在智能機(jī)上用,簡直不能忍。當(dāng)你安裝了IOS軟件之后,在打開網(wǎng)站登錄界面,點(diǎn)擊下方的向上小箭頭,選擇LassPass軟件,點(diǎn)擊Touch ID,好了,密碼自動(dòng)完成,世界頓時(shí)清凈了,想想以前在手機(jī)上輸入超長的密碼,跪了! 真的安全嗎?有的人擔(dān)心密碼泄露問題,其實(shí)對(duì)于LastPass沒啥必要,因?yàn)長astPass存儲(chǔ)的都是加密文件,只要你的主密碼不泄露,別人即使拿到你的網(wǎng)上的密碼,也是加密的,沒法用。 它收費(fèi)嗎?好東西都要收費(fèi),價(jià)格也還可以,幾十塊一年,其實(shí)收費(fèi)版和免費(fèi)版對(duì)于普通用戶,最重要的區(qū)別就是:免費(fèi)版帳號(hào)密碼不能云同步 免費(fèi)獲得一個(gè)月的高級(jí)賬戶權(quán)限https://lastpass.com/f?18430702 通過這個(gè)地址注冊(cè),則會(huì)免費(fèi)獲得一個(gè)月高級(jí)賬戶權(quán)限 最后也是最重要的:點(diǎn)擊這個(gè)鏈接,輸入剛剛你注冊(cè)的郵箱,則會(huì)送半年的高級(jí)賬戶,記住一個(gè)密碼,就記住了所有密碼,就是那么簡單! posted @ 2016-01-13 14:19 楊羅羅 閱讀(355) | 評(píng)論 (0) | 編輯 收藏 一. 應(yīng)用場(chǎng)景 在大型分布式應(yīng)用中,我們經(jīng)常碰到在多數(shù)據(jù)庫之間的數(shù)據(jù)同步問題,比如說一款游戲,在玩家注冊(cè)后,可以馬上登陸進(jìn)入服務(wù)器,即數(shù)據(jù)在一個(gè)IDC更新,其它IDC立即可見。為了簡化思路,我們這里稱玩家注冊(cè)的數(shù)據(jù)庫(數(shù)據(jù)來源庫)為中心庫,同步目的地的數(shù)據(jù)庫為分站庫。 在分布式領(lǐng)域有個(gè)CAP理論,是說Consistency(一致性), Availability(可用性), Partition tolerance(分區(qū)和容錯(cuò)) 三部分在系統(tǒng)實(shí)現(xiàn)只可同時(shí)滿足二點(diǎn),無法三者兼顧。 能做的 · 數(shù)據(jù)快速搬運(yùn)到指定的IDC節(jié)點(diǎn) · 數(shù)據(jù)傳遞過程中失敗時(shí),重新傳遞 · 監(jiān)控?cái)?shù)據(jù)傳遞流程 · 故障轉(zhuǎn)移 · 數(shù)據(jù)版本控制 · 分配全局唯一的ID 不能做的 · 不參與業(yè)務(wù)行為,業(yè)務(wù)操作只能通過注冊(cè)的方式集成 · 不保存業(yè)務(wù)數(shù)據(jù),不提供傳遞的業(yè)務(wù)的查詢 二.系統(tǒng)要求 1.數(shù)據(jù)快速同步:除去網(wǎng)絡(luò)原因,正常情況下從來源庫同步到接收庫的時(shí)間不超過300m2.高并發(fā):單個(gè)應(yīng)用每秒同步2000條記錄 三.設(shè)計(jì)思路 系統(tǒng)優(yōu)化,最常用的就是進(jìn)行業(yè)務(wù)切割,將總?cè)蝿?wù)切割為許多子任務(wù),分區(qū)塊分析系統(tǒng)中可能存在的性能瓶頸并有針對(duì)性地進(jìn)行優(yōu)化,在本系統(tǒng)中,主要業(yè)務(wù)包含以下內(nèi)容: 四.數(shù)據(jù)流轉(zhuǎn) 綠色-正常流程、紅色-異常流程 隊(duì)列處理 根據(jù)業(yè)務(wù)劃分隊(duì)列名稱,每個(gè)隊(duì)列再劃分為三個(gè)關(guān)聯(lián)隊(duì)列:正常隊(duì)列(Normal)、重試隊(duì)列(Retry)、死亡隊(duì)列(Death),處理流程為: 1 【進(jìn)程A】把數(shù)據(jù)先放入正常隊(duì)列,如果放置失敗寫恢復(fù)日志 2 【進(jìn)程B】監(jiān)聽正常隊(duì)列,獲取隊(duì)列數(shù)據(jù)并進(jìn)行業(yè)務(wù)處理,處理失敗放入重試隊(duì)列 3 【進(jìn)程C】監(jiān)聽重試隊(duì)列,過幾秒獲取隊(duì)列數(shù)據(jù)并重新進(jìn)行業(yè)務(wù)處理,處理失敗放入死亡隊(duì)列 4 【進(jìn)程D】監(jiān)聽死亡隊(duì)列,獲取隊(duì)列數(shù)據(jù)并重新進(jìn)行業(yè)務(wù)處理,處理失敗重新放入死亡隊(duì)列尾部,等待下一次輪回 業(yè)務(wù)處理失敗如果無法再次放入隊(duì)列,記錄恢復(fù)日志 數(shù)據(jù)同步流程 1發(fā)送數(shù)據(jù),支持Http POST:curl -d "經(jīng)過URL編碼的文本消息",如"http://host:port/sync_all/register" 5 sync-syncer接收到同步數(shù)據(jù)請(qǐng)求,創(chuàng)建sid并分解出需要同步的節(jié)點(diǎn)個(gè)數(shù),把原始數(shù)據(jù)和子任務(wù)寫入redis中,sid寫入httpsqs中 6 sync-delivery監(jiān)聽中心httpsqs隊(duì)列,根據(jù)sid從redis獲取到原始數(shù)據(jù)和需要同步的節(jié)點(diǎn)地址,往其他節(jié)點(diǎn)發(fā)送數(shù)據(jù),流程如按"隊(duì)列處理流程"進(jìn)行 7 sync-batch監(jiān)聽分節(jié)點(diǎn)的httpsqs隊(duì)列,調(diào)用已經(jīng)注冊(cè)的處理器處理隊(duì)列數(shù)據(jù),流程如按"隊(duì)列處理流程"進(jìn)行 三. 恢復(fù)和監(jiān)控 恢復(fù)數(shù)據(jù)源 · httpsqs中的死亡隊(duì)列 - 業(yè)務(wù)處理暫時(shí)處理不了的數(shù)據(jù) · recovery日志文件 - 其它異常情況下的數(shù)據(jù),例如網(wǎng)絡(luò)無法連接、內(nèi)部服務(wù)不可用 數(shù)據(jù)恢復(fù) 獨(dú)立的應(yīng)用來處理正常流程中沒有完成的任務(wù),主要功能有: · 監(jiān)聽死亡隊(duì)列,進(jìn)行業(yè)務(wù)重做,再次執(zhí)行失敗時(shí)將執(zhí)行次數(shù)+1,最大執(zhí)行次數(shù)為5(默認(rèn)),超出上限則記錄到恢復(fù)日志中 · 讀取恢復(fù)日志,重新放入死亡隊(duì)列 應(yīng)用監(jiān)控 · 使用scribe日志框架服務(wù)業(yè)務(wù)日志的采集和監(jiān)控 · 收集重要的業(yè)務(wù)操作日志 · 動(dòng)態(tài)的開啟/關(guān)閉某類業(yè)務(wù)日志 · 對(duì)redis進(jìn)行監(jiān)控 · 對(duì)httpsps,監(jiān)控隊(duì)列個(gè)數(shù),每個(gè)隊(duì)列的狀態(tài) 四. 數(shù)據(jù)結(jié)構(gòu) {"sid":111,"type":"reg","v":1,"data":"hello world","ctime":65711321800,"exec":1} · sid(sync id) - 全局唯一id · v(version) - 版本號(hào) · data - 業(yè)務(wù)數(shù)據(jù) · ctime(create time) - 創(chuàng)建時(shí)間(毫秒) · exec - 可選,執(zhí)行次數(shù)
所有的key都小寫,以 ':' 作為分隔符 五.編碼及測(cè)試結(jié)果 經(jīng)過編碼和測(cè)試,在內(nèi)網(wǎng)環(huán)境下,在無數(shù)據(jù)庫限制的情況下,單應(yīng)用可以傳遞1500條/秒,基本滿足業(yè)務(wù)需求。如果需進(jìn)一步擴(kuò)展,采用集群式布署可使得吞吐量成倍的增長。 posted @ 2011-04-06 15:50 楊羅羅 閱讀(3644) | 評(píng)論 (3) | 編輯 收藏 |
|||||||||||||||||||||