原创 天天嘮叨的MySQL優化,阿里P8架構師告訴你到底該怎麼玩?

說起MySQL的查詢優化,相信大家收藏了一堆奇技淫巧:不能使用 SELECT*、不使用NULL字段、合理創建索引、爲字段選擇合適的數據類型..... 你是否真的理解這些優化技巧?是否理解其背後的工作原理?在實際場景下性能真有提升嗎?我想未

原创 try catch 有多煩人,我就有多暴躁!一次搞定 Exception

背景 軟件開發過程中,不可避免的是需要處理各種異常,就我自己來說,至少有一半以上的時間都是在處理各種異常情況,所以代碼中就會出現大量的try {...} catch {...} finally {...} 代碼塊,不僅有大量的冗餘代碼,而

原创 阿里大牛帶你玩轉spring全家桶實戰篇,Spring全家桶也不過如此

  背景 Spring框架是由於軟件開發的複雜性而創建的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限於服務器端的開發。從簡單性、可測試性和松耦合性角度而言,絕大部分Ja

原创 數據庫和緩存一致性的幾種實現方式,我們來聊聊?

緩存是互聯網高併發系統裏常用的組件,由於多增加了一層,如果沒有正確的使用效果可能適得其反,諸如“緩存是刪除還是更新?”,“先操作數據庫還是先操作緩存?”都是些老生常談的話題,今天我們就來聊一聊緩存與數據庫的雙寫一致性的解決方案。 Cac

原创 優秀的代碼千篇一律,噁心的代碼各有千秋,一些讓人噁心的代碼片段

1、下面一段代碼將註釋和代碼混在了一起,不認真看還真不知道。   高亮顯示後:   2、看到這種多層嵌套噁心到頭大     3、據說某俄國特工經過九死一生偷到了NASA的太空火箭發射程序的源代碼的最後一頁,代碼是: )))))))

原创 被面試官問懵B了,十億級數據ES搜索怎麼優化?

面試題 es 在數據量很大的情況下(數十億級別)如何提高查詢效率啊? 面試官心理分析 這個問題是肯定要問的,說白了,就是看你有沒有實際幹過 es,因爲啥?其實 es 性能並沒有你想象中那麼好的。很多時候數據量大了,特別是有幾億條數據的時候

原创 造了一個 Redis 分佈鎖的輪子,沒想到還學到這麼多東西

這次我們舉得實際一點,假設 id=1,balance=1000,不過這次我們扣款 1000,兩個事務的時序圖如下: 炸天的分佈式,redis、zk、kafka、hbase,橫掃一切關於Redis的問題:https://www.bilib

原创 牛逼!IDEA不愧爲神器,結合Groovy腳本,簡直天下無敵

# 導語 如今, 有許許多多的插件或者編輯器都支持根據數據表自動生成數據實體類了, 比如IDEA, 各種MyBatis的代碼生成工具, 等等;本篇介紹一下如何使用IDEA的groovy腳本文件生成帶JPA註解的實體類。 # 使用IDEA連

原创 程序員開發進階加薪利器:最新版的深入理解JVM底層和源碼PDF

隨着互聯網的發展,高併發高可用、快速響應成爲軟件的必須,而JVM與這些有着密切關聯。之前JVM系列好多都是一些由於STW影響到快速響應問題,忽然網站慢一下(抖動下)等問題,下面談談最近通過JVM排查到的高併發高可用問題。(在高可用高併發下

原创 讓你徹底瞭解 Java 8 的 Lambda、函數式接口、Stream 用法和原理

就在今年 Java 25週歲了,可能比在座的各位中的一些少年年齡還大,但令人遺憾的是,竟然沒有我大,不禁感嘆,Java 還是太小了。(難道我會說是因爲我老了?)   而就在上個月,Java 15 的試驗版悄悄發佈了,但是在 Java 界

原创 同樣是服務註冊中心,Eureka憑什麼比ZooKeeper優秀?

  1. 前言 服務註冊中心,給客戶端提供可供調用的服務列表,客戶端在進行遠程服務調用時,根據服務列表然後選擇服務提供方的服務地址進行服務調用。服務註冊中心在分佈式系統中大量應用,是分佈式系統中不可或缺的組件,例如rocketmq的na

原创 幹掉 Date,Java8 LocalDate 簡直不能賊香,趕緊來艿一口

簡介 伴隨 lambda表達式、streams 以及一系列小優化,Java 8 推出了全新的日期時間API。 Java處理日期、日曆和時間的不足之處:將 java.util.Date 設定爲可變類型,以及 SimpleDateFormat

原创 一睹微服務架構世界:阿里P9資深技術專家精心整理的微服務系統架構設計手冊

近幾年,微服務架構在大量技術社區迅速躥紅,被認爲是 IT 軟件架構的未來方向。一線互聯網公司由於具有大量的業務體量和業務場景,比如阿里、百度、網易,很早就開始入坑微服務架構。 隨着雲端辦公以來,發現微服務越來越重要了。Docker 容器技

原创 BAT大牛分析六篇實戰電子版書籍JVM+多線程+Kafka+Redis+Nginx等

JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用於計算設備的規範,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。 引入Java語言虛擬機後,Java語言在不同平臺上

原创 P9資深技術專家打造的淘寶雙11,618京東節億級併發量系統手冊,一起走進阿里、京東架構大世界

我們在找工作時,經常在招聘信息上看到有這麼一條有構建大型互聯網服務及高併發等經驗,想到高併發,我們第一想到了媒體上經常出現的新聞阿里雙11每秒處理xx萬訂單,瞬間覺得高併發是一種很屌的技術,很高大上 高併發的概念 高併發(High Con