原创 忘掉 Snowflake,感受一下性能高出 587 倍的全局唯一 ID 生成算法

今天我們來拆解 Snowflake 算法,同時領略百度、美團、騰訊等大廠在全局唯一 ID 服務方面做的設計,接着根據具體需求設計一款全新的全局唯一 ID 生成算法。這還不夠,我們會討論到全局唯一 ID 服務的分佈式 CAP 選擇與性能瓶頸

原创 前端面試-高頻考點

1 typeof類型判斷 typeof 是否能正確判斷類型?instanceof 能正確判斷對象的原理是什麼 typeof 對於原始類型來說,除了 null 都可以顯示正確的類型 typeof 1 // 'number' typeo

原创 高可用框架Resilience4j使用指南

介紹 Hystrix停更之後,Netflix官方推薦移步至resilience4j,它是一個輕量、易用、可組裝的高可用框架,支持熔斷、高頻控制、隔離、限流、限時、重試等多種高可用機制。   與Hystrix相比,它有以下一些主要的區別:

原创 《構建之法》讀後感之項目計劃

最近看到 《構建之法》的“8.6 計劃和估計”這一節,頗多感觸。這些年來,不同的階段,對項目計劃都有不同的認識和掌握。 鄒老師提到了制定計劃的幾個概念:目標、估計和決心。 目標:表明一個希望達到的狀態。例如,軟件“五一”之前要投放市場!在

原创 Zookeeper集羣腦裂問題

關於集羣中的"腦裂"問題,之前已經在這裏詳細介紹過,下面重點說下Zookeeper腦裂問題的處理辦法。ooKeeper是用來協調(同步)分佈式進程的服務,提供了一個簡單高性能的協調內核,用戶可以在此之上構建更多複雜的分佈式協調功能。腦裂通

原创 一些常見面試問題背後的邏輯是什麼?

以前我上大學那會,學校的就業辦主要就是幫你安排招聘會,從來沒聽說針對面試的輔導或者模擬面試啥的,所有的面試經驗都來源於網上寫的一些文章,然後再在面試的時候通過各種碰壁去揣測面試官在想啥。 前不久美國的西北大學給我們公司HR發郵件,邀請志願

原创 MySQL 優化之 index merge(索引合併)

深入理解 index merge 是使用索引進行優化的重要基礎之一。理解了 index merge 技術,我們才知道應該如何在表上建立索引。 1. 爲什麼會有index merge 我們的 where 中可能有多個條件(或者join)涉及

原创 MySQL優化器:index merge介紹

在MySQL官方手冊上,關於index merge的介紹非常非常少。甚至還有不少誤導的地方,這次把5.1版本關於此類優化處理的代碼細看了一遍,以案例的方式介紹了各種實用index merge訪問類型的SQL。後續的還會繼續介紹index

原创 漲工資的那點事

剛畢業那幾年,每次到加薪前,心裏總是充滿忐忑和期待,加薪後,有時驚喜有時失望。但當時並不太明白加薪背後的事情,公司到底是按照什麼來給我們加工資的?隨着工作經歷增加,對漲工資這件事慢慢能泰然處之,也開始轉變角色,要去處理部門員工漲薪資的事情

原创 記錄下兩個孩子在MineCraft裏面還原公寓的經歷

前不久,我們家兩個小朋友沉迷於玩“我的世界”(MineCraft),考慮到堵不如疏,還是正面引導他們比較好,於是和孩子的媽媽商量後,給他兩出了個題目:“把我們住的公寓在MineCraft裏面搭出來”。爲了激勵他們,告訴他們如果2個月內搭好

原创 Activiti最全入門教程

工作流(Workflow),就是“業務過程的部分或整體在計算機應用環境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現”。  工作流管

原创 Activiti工作流引擎使用詳解(一)

一、IDEA安裝activiti插件 在插件庫中查找actiBPM,安裝該插件,如果找不到該插件,請到插件庫中下載該包手動安裝,插件地址 http://plugins.jetbrains.com/plugin/7429-actibpm 安

原创 activiti工作流引擎入門教程

activiti簡介 Activiti項目是一項新的基於Apache許可的開源BPM平臺,從基礎開始構建,旨在提供支持新的BPMN 2.0標準。 Activiti是一種輕量級,可嵌入的BPM引擎,而且還設計適用於可擴展的雲架構。 Act

原创 前端面試-精簡版

一、CSS相關 #1.1 左邊定寬,右邊自適應方案:float + margin,float + calc /* 方案1 */ .left { width: 120px; float: left; } .right { m

原创 使用 Eclipse Memory Analyzer 進行堆轉儲文件分析

概述 對於大型 JAVA 應用程序來說,再精細的測試也難以堵住所有的漏洞,即便我們在測試階段進行了大量卓有成效的工作,很多問題還是會在生產環境下暴露出來,並且很難在測試環境中進行重現。JVM 能夠記錄下問題發生時系統的部分運行狀態,並將其