原创 MySQL問題總結

1、修改root密碼 在mysql中執行下面語句修改密碼: use mysql; update user set authentication_string=PASSWORD("自定義密碼") where user='root'; up

原创 單例模式 - 雙鎖機制

目錄 1 餓漢模式 2 懶漢模式 3 多線程安全的懶漢單例模式 3.1 普通加鎖方式 3.2 雙鎖機制 1 餓漢模式 在程序啓動或單件模式類被加載的時候,單件模式實例就已經被創建。 主要注意如下四個部分: 構造函數私有化或者保護化 .禁

原创 分佈式系統唯一ID設計

目錄 1 概述 2 分佈式唯一ID特點 3 分佈式唯一ID傳統方案 3.1 UUID 3.2 數據庫生成 3.3 Redis生成ID 3.4 利用zookeeper生成唯一ID 3.5 snowflake(雪花算法)方案 1 概述    

原创 Linux 守護進程的原理與實現

目錄 1 守護進程 2 創建守護進程流程 3 代碼示例 1 守護進程       守護進程:也稱爲精靈進程,守護進程是一個在後臺運行並且不受任何終端控制的進程。守護進程脫離於終端是爲了避免進程在執行過程中的信息在任何終端上顯示並且進程也不

原创 TCP擁塞控制機制

目錄 1 概述 2 擁塞控制狀態機 2.1 Open狀態 2.2 Disorder狀態 2.3 CWR狀態 2.4 Recovery狀態 2.5 Loss狀態 3 四大算法 3.1 慢熱啓動算法 – Slow Start 3.2 擁塞避免

原创 MySQL之 分庫分表

目錄   1 數據庫的瓶頸 1.1 IO瓶頸 1.2 CPU瓶頸 2 分庫分表 2.1 水平分庫 2.2 水平分表 2.3 垂直分庫 2.4 垂直分表 3 分庫分表步驟 4 分庫分表問題 5 擴容問題(水平分庫分表,拆分策略爲常用的has

原创 829. Consecutive Numbers Sum

Given a positive integer N, how many ways can we write it as a sum of consecutive positive integers? Example 1: Input:

原创 負載均衡算法 : 加權輪詢

1 加權輪詢算法背景        輪詢算法沒有考慮每臺服務器的處理能力,實際情況是每臺服務器的配置、安裝的業務應用等不同,其處理能力會不一樣。所以,加權輪詢算法的原理就是:根據服務器的不同處理能力,給每個服務器分配不同的權值,使其能接受

原创 微服務的隔離和熔斷機制

1、微服務故障背景        假設Tomcat線程池有100個線程, 每次有新的用戶請求過來,Tomcat就會從中找出一個空閒的線程去執行, 拋開那些瑣碎的小細節,這些請求其實非常簡單, 無非就是這麼幾件事:  根據用戶ID調用用戶服

原创 Linux 信號(signal)

目錄 1 信號的本質 2 信號列表 3 信號發送時機 3.1 內核自動給進程發送信號 3.2 進程給進程發送信號       4 信號處理時機 1 信號的本質        軟中斷信號(signal,又簡稱爲信號)用來通知進程發生了異步事

原创 Linux IO原理和零拷貝機制

目錄 1 概述 2 Linux I/O讀寫方式 2.1 I/O中斷原理 2.2. DMA傳輸原理 2.3 傳統I/O方式 3 零拷貝方式 3.1 用戶態直接I/O 3.2 mmap + write 3.3 sendfile 3.4 sen

原创 負載均衡的原理和架構

目錄 1 爲什麼需要負載均衡? 2 負載均衡原理  3 常見負載均衡算法 4 常見負載均衡架構 4.1 DNS域名解析負載均衡 4.2 數據鏈路層負載均衡(LVS) 4.3 IP負載均衡(SNAT) 4.4 反向代理負載均衡(nginx)

原创 併發編程(1): volatile、原子變量、自旋鎖和互斥鎖

併發編程三條特性:  原子性 原子性是指一個操作是不可中斷的,要麼全部執行成功要麼全部執行失敗。 可見性 可見性是指當一個線程修改了共享變量後,其他線程能夠立即看見這個修改。 有序性 有序性是指程序指令按照預期的順序執行而非亂序執行,亂序

原创 高併發中的驚羣問題

目錄 1 驚羣效應是什麼? 2 驚羣效應消耗了什麼 3 驚羣的幾種情況 3.1 accept驚羣(新版內核已解決)  3.2 epoll_create 在 fork 之前創建 3.3 epoll_create 在 fork 之後創建 4 

原创 Redis教程:數據庫

目錄 1 服務器中的數據庫 2 切換數據庫 3 數據庫的鍵空間  3.1 讀寫鍵空間的維護操作 4 設置鍵的生存時間 4.1 保存過期時間 4.2 過期判定 5 過期刪除策略 5.1 惰性刪除策略的實現 5.2 定期刪除策略的實現 6 A