原创 一個不常見的Java面試題:如何保證緩存與數據庫的雙寫一致性?

引言 只要用緩存,就可能會涉及到緩存與數據庫雙存儲雙寫,你只要是雙寫,就一定會有數據一致性的問題,那麼你如何解決一致性問題? 面試題剖析 一般來說,如果允許緩存可以稍微的跟數據庫偶爾有不一致的情況,也就是說如果你的系統不是嚴格要求 “緩存

原创 如何正確實現一個微服務高可用方案

微服務高可用方案 一、微服務的高可用 在註冊中心、配置中心高可用方案之前,瞭解一下注冊中心的工作原理,下面分爲兩個部分來解釋,一是註冊中心和各個微服務的註冊表的獲取與同步,二是註冊中心如何去維護註冊表。 1.1、註冊表的獲取與同步 Eur

原创 趕5G風口,拿百萬年薪。程序員都準備好了嗎?

引言 趕5G風口,拿百萬年薪。程序員都準備好了嗎? 最近5G的概念炒的如火如荼,爲此,華爲和高通還幹了一仗。這篇文章從技術層面給大家分析,什麼是5G,它和4G比,高級在哪裏? 我們來看看移動互聯網的技術發展:   然後我們在來看看他

原创 BAT架構師孰能生巧-用Spring Cloud 服務註冊中心Eureka

引言 在Spring Cloud Netflix 整合技術棧中,Eureka既可以作爲服務註冊中心也可以用於服務發現對整個微服務架構起着最核心的整合作用。 Eureka是基於REST(Representational State Tran

原创 工作3年的Java程序員如何成功跳槽,7K一飛到22K

引言 最近在脈脈職言看到一個帖子:   16年畢業,就去了互聯網公司,第一份工資7千,3年後跳了5家公司,拿到了2萬2。都說跳槽頻繁,企業會比較忌諱這樣的人才。但是換個角度想,如果真的在3年內積累了很多的項目經驗和技術經驗,這樣的簡歷,

原创 SSM 如何框架集成?

引言 .SSM是什麼? SSM是指目前最主流的項目架構的三大框架:   SpringMVC : spring的 Web層框架,是spring的一個模塊   Spring :容器框架   MyBatis :持久層框架   2.spring與

原创 阿里JAVA面試題剖析-如何從源碼角度分析StringBuffer和StringBuilder的區別?

面試官Q1:請問StringBuffer和StringBuilder有什麼區別? 這是一個老生常談的話題,筆者前幾年每次面試都會被問到,作爲基礎面試題,被問到的概率百分之八九十。下面我們從面試需要答到的幾個知識點來總結一下兩者的區別有哪些

原创 你知道分佈式動機是什麼丶如何構建分佈式爬蟲原理技術與實現

分佈式爬蟲的動機 那麼什麼是分佈式?嚴謹學術的概念就不搬過來了。大致來說,就是需要計算的數據量太大,任務太多,一臺機器搞不定或者效率極低,需要多臺機器共同協作(而不是孤立地各做各的,所以需要通信),最後所有機器完成的任務彙總在一起,完成大

原创 Java高級架構師教你如何正常掌握分佈式系統的大部分技術

分佈式系統提高承載量的基本手段 分層模型(路由、代理) 使用多態服務器來協同完成計算任務,最簡單的思路就是,讓每個服務器都能完成全部的請求,然後把請求隨機的發給任何一個服務器處理。最早期的互聯網應用中,DNS輪詢就是這樣的做法:當用戶輸入

原创 使用Redis實現分佈式鎖與漏洞解決方案

分佈式鎖是控制分佈式系統之間同步訪問共享資源的一種方式。在分佈式系統中,常常需要協調他們的動作。如果不同的系統或是同一個系統的不同主機之間共享了一個或一組資源,那麼訪問這些資源的時候,往往需要互斥來防止彼此干擾來保證一致性,在這種情況下,

原创 分佈式系統應用中的問題點之分佈式鎖的實現原理

分佈式系統(distributed system)是建立在網絡之上的軟件系統。正是因爲軟件的特性,所以分佈式系統具有高度的內聚性和透明性。因此,網絡和分佈式系統之間的區別更多的在於高層軟件(特別是操作系統),而不是硬件。內聚性是指每一個數

原创 MySQL性能優化與架構設計

今天,數據庫的操作越來越成爲整個應用的性能瓶頸了,這點對於Web應用尤其明顯。關於數據庫的性能,這並不只是DBA才需要擔心的事,而這更是我 們程序員需要去關注的事情。當我們去設計數據庫表結構,對操作數據庫時(尤其是查表時的SQL語句),我

原创 如何透徹理解kafka消息系統設計與實現

Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,它可以處理消費者規模的網站中的所有動作流數據。 這種動作(網頁瀏覽,搜索和其他用戶的行動)是在現代網絡上的許多社會功能的一個關鍵因素。 這些數據通常是由於吞吐量的要求而通過處理日誌和日誌聚

原创 高併發架構設計思路

高併發經常會發生在有大活躍用戶量,用戶高聚集的業務場景中,如:秒殺活動,定時領取紅包等。爲了讓業務可以流暢的運行並且給用戶一個好的交互體驗,我們需要根據業務場景預估達到的併發量等因素,來設計適合自己業務場景的高併發處理方案。在電商相關產品

原创 Java架構師的10本小黃書(精華)

學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。概述很多程序員們往往有看書的衝動,但不知道看哪些書,下面我就給各位Java程序猿們推薦一些好書(每本書的作者會加粗標紅),其中絕大多數都是我自己平時在看的書,也算