原创 SQL語句是如何執行的?

目錄 1.查詢語句是如何執行的 1.1 MySQL的邏輯架構圖 1.1.1 連接器 1.1.2 查詢緩存 1.1.3 分析器 1.1.4 優化器 1.1.5 執行器 1.2 問題 2.更新語句是如何執行的 2.1 redo log 2.2

原创 Spring數據庫事務處理

目錄 1.Spring聲明式事務 1.2 聲明式事務約定 1.3 @Transactional源碼分析 1.4 Spring事務管理器 2.隔離級別 2.1 數據庫事務特性 2.1.1 第一類丟失更新 2.1.2 第二類丟失更新 2.2

原创 Spring異步線程池

在Spring中存在一個AsyncConfigurer接口,它是一個可以配置異步線程池的接口,實現源碼如下: package org.springframework.scheduling.annotation; import java

原创 Spring Boot全註解下的IOC

目錄 1.IOC容器簡介 2.裝配Bean 2.1 通過掃描裝配Bean 2.2 自定義第三方Bean 3.依賴注入 4.生命週期 5.使用屬性文件 6.條件裝配Bean 7.Bean的作用域 [email protected] 9.引入XML配置的B

原创 分佈式開發-Spring Cloud

目錄 1.服務治理和服務發現——Eureka 1.1 配置服務治理節點 1.2 服務發現 1.3 配置多個服務治理中心節點 2.微服務之間的調用 2.1 Ribbon客戶端負載均衡 2.2 Feign聲明式調用 3 斷路器——Hystri

原创 OpenResty原理剖析及應用

最近在京東零售技術公衆號上看到了一篇關於OpenResty原理相關的文章,寫的很不錯,基本上把OpenResty的原理、優缺點、適用場景都講清楚了,推薦一下。 原文地址:https://mp.weixin.qq.com/s/QwsFADX

原创 Idea 搭建Lua開發環境

1.Lua是什麼 1993年在巴西里約熱內盧天主教大學誕生了一門編程語言,發明者是該校的三名研究人員,他們給這門語言取了一個浪漫的名字——Lua,在葡萄牙語裏代表美麗的月亮。Lua語言正如它的名字所預示的那樣成長爲一門簡潔、優雅且富有樂趣

原创 冪等性

目錄 1.轉賬提現 2.發貨系統 冪等性在我們的實際開發中是比較常見的,例如轉賬提現、訂單發貨系統等。今天,我們就分這兩種場景對冪等性進行討論: 1.轉賬提現 假如讓我們實現支付寶和銀行的轉賬提現需求,你會怎麼做呢? 首先我們看一下示意圖

原创 Linux中安裝部署OpenResty應用

目錄 1.安裝OpenResty應用 2.新建項目 3.啓動Nginx 1.安裝OpenResty應用 首先我們需要在Linux中安裝OpenResty,安裝步驟參考官網:http://openresty.org/cn/installat

原创 Lua協程

目錄 1.什麼是協程 1.1 進程和線程 1.2 協程 1.2.1 協程掛起與喚醒 1.3 進程、線程和協程的區別 2.Lua協程 協程是追求極限性能和優美的代碼結構的產物,協程允許我們寫同步代碼的邏輯,卻做着異步的時,避免了回調嵌套,使

原创 Linux上部署Flask Web應用

在安裝好Python3的前提下執行以下步驟。 1.安裝虛擬環境 pip install virtualenv 2.創建虛擬環境 virtualenv ~/code/python/flask-venv 此時有可能出現command no

原创 OpenResty高性能壓測

目錄 1.ab工具 2.環境部署及壓測 2.1 Openresty壓測 2.2 NodeJS壓測 2.3 Java壓測 2.4 Python壓測 3.結果分析 OpenResty基於高性能的Nginx,其實現採用了“小衆”的開發語言Lua

原创 Spring Boot整合Redis

目錄 1.spring-data-redis項目簡介 1.1 spring-data-redis項目的設計 1.2 RedisTemplate 1.3 Spring對Redis數據類型操作的封裝 1.4 SessionCallback和R

原创 安全——Spring Security

目錄 1.簡單安全認證 1.1 簡單實現 1.2 實現原理 2.使用WebSecurityConfigurerAdapter自定義 2.1 自定義用戶服務信息 2.1.1 使用內存簽名服務 2.1.2 使用數據庫定義用戶認證服務 2.1.

原创 Nginx進程模型

目錄 1.Nginx管理/工作進程模式 2.“驚羣”問題 1.Nginx管理/工作進程模式 爲了支持現在流行的多CPU和多核架構,Nginx使用了管理進程和工作進程的設計。架構設計如下圖所示: 管理進程爲工作進程的父進程,負責外部指令的