原创 服務端高併發分佈式架構演進之路

原文鏈接:https://segmentfault.com/a/1190000018626163 原文鏈接:服務端高併發分佈式架構演進之路 1. 概述 本文以淘寶作爲例子,介紹從一百個併發到千萬

原创 Java編程拾遺『顯式鎖』

在之前講線程同步時,介紹了synchronized的鎖的使用及底層原理,也介紹了synchronized鎖的一些使用侷限,本篇文章來介紹一下Java中提供的另一種線程同步機制——顯式鎖。Java併發包中的顯式鎖接口和類位於包java.ut

原创 golang websocket編程

上篇文章講了TCP/IP的一些基礎概念,並通過go內置的包實現了socket編程。本篇文章來了解一下另外一個概念——WebSocket。但從命名上來看WebSocket和Socket很類似,但是其實兩者並沒有直接的聯繫。Websocket

原创 Redisson實現Redis分佈式鎖

在上篇文章redis實現分佈式鎖中,講了通過redis實現分佈式鎖的正確方式,並在文章最後講到,文章中的實現方式存在單點問題,並提到一種基於分佈式環境的分佈式鎖——Redlock。本文就講解一下Redlock的一些概念和實現。 1. Re

原创 golang socket編程

在大學的時候,曾經修過一門課《網絡原理》,其中就花很大的篇幅講過TCP/IP四層網絡協議(OSI的七層網絡協議可以映射到這個四層協議上來),也講過HTTP協議、socket編程。但是講的東西多了,總有一種雲裏霧裏的感覺,而且也沒能很好的瞭

原创 理解Https

之前的文章講golang webSocket編程的文章中提到過Http協議的概念,通過之前的瞭解我們也知道Http協議其實就是基於傳輸層的TCP協議和網絡層的IP協議實現的一個協議,所以他擁有TCP/IP的所有特性。也正是因爲它使用TCP

原创 Java編程拾遺『線程協作』

之前用了兩篇文章介紹了多個線程競爭資源的解決方案synchronized,但其實多個線程之間除了競爭資源之外,還有相互協作。比如: 生產者/消費者模式:這是一種常見的協作模式,生產者線程和消費者線程通過共享隊列進行協作,生產者將數據或任務

原创 Java編程拾遺『線程中斷』

之前的文章,我們已經介紹了線程的概念、使用、同步及線程協作,本篇文章來重點講一下Java中如何取消或關閉一個線程。 1. 線程取消/關閉的場景 我們知道,通過線程的start方法啓動一個線程後,線程開始執行run方法,run方法運行結束後

原创 Java編程拾遺『synchronized原理』

上篇文章簡單介紹了一下synchronized的使用,以及對象鎖和類鎖的概念,本篇文章就來介紹一下synchronized的底層原理。 上篇文章也提到,我們對synchronized的印象是重量級鎖,使用效率低下,導致我們一般在使用syn

原创 Java編程拾遺『AQS』

上篇文章講了Java中顯式鎖Lock和ReadWriteLock的概念及簡單使用示例,本篇文章重點來看一下Java中顯式鎖的底層實現。在看這部分代碼時,我任務比較好理解的方式是帶着問題去看源碼。對於顯式鎖,我們可能會有以下問題: 問題1:

原创 瞭解Cookie、Session和Token

在Web剛興起的階段,Web服務都是靜態服務,一般處理前端請求,只需要將相應的html、圖片等文件傳送到前端即可,這個時候,對於同一個請求,每個用戶看到的內容都是完全一樣的,服務器也沒必要針對不同用戶做不同的處理。Http協議最開始就是定

原创 Java編程拾遺『synchronized使用』

從接觸Java多線程第一刻起,我們就被告知使用多線程編程一定要注意線程安全問題。而一般的教材中都會首先給出解決線程安全問題的“萬金油”——關鍵字synchronized,它可以保證同一時刻只有一個線程在訪問其修飾的代碼。但是同時,一般教程

原创 Java編程拾遺『原子變量』

本篇文章我們來講java.util.concurrent包下的原子變量,原子變量的引入主要是爲了解決普通變量(int、Integer、Long等)修改操作不是原子的,進而導致必須使用同步機制才能保證安全更新的問題。舉個例子: publi

原创 秒懂 QPS、TPS、PV、UV、GMV、IP、RPS

原文鏈接:http://unvcn.com/post/50.html 原文鏈接:http://unvcn.com/post/50.html QPS、TPS、PV、UV、GMV、IP、RPS等各種