阿裡神器 Seata 實現 TCC模式 解決分布式事務,真香!-編程思維

今天這篇文章介紹一下Seata如何實現TCC事務模式,文章目錄如下: 什麼是TCC模式? TCC(Try Confirm Cancel)方案是一種應用層面侵入業務的兩階段提交。是目前最火的一種柔性事務方案,其核心思想是:針對每個操作,都要注冊一個與其對應的确認和補償(撤銷)操作。 TCC分為兩個階段,分别如下: 第一階段:Try(嘗試),主要是對業務系統做檢測及資源預留 (加鎖,鎖住資源) 第

minio文件上傳與下載-編程思維

目錄一、minio簡介二、minio安裝一、java中使用 一、minio簡介 MinIO 是在 GNU Affero 通用公共許可證 v3.0 下發布的高性能對象存儲。 它是與 Amazon S3 雲存儲服務兼容的 API,非常適合于存儲大容量非結構化的數據,例如圖片、視頻、日志文件、備份數據和容器/虛拟機鏡像等,而一個對象文件可以是任意大小,從幾kb到最大5T不等 二、minio安裝 參考我

分布式鍊路追蹤自從用了SkyWalking,睡得真香!-編程思維

本篇文章介紹鍊路追蹤的另外一種解決方案Skywalking,文章目錄如下: 什麼是Skywalking? 上一篇文章介紹了分布式鍊路追蹤的一種方式:Spring Cloud Sleuth+ZipKin,這種方案目前也是有很多企業在用,但是作為程序員要的追逐一些新奇的技術,Skywalking作為後起之秀也是值得大家去學習的。 skywalking是一個優秀的國産開源框架,2015年由個人吳晟(

若依認證鑒權實現原理-編程思維

一、什麼是認證鑒權 通俗來說,認證就是系統用戶通過提供系統頒發給自己的信任憑證(如用戶名和密碼)登錄系統,系統對用戶提交的憑證進行驗證這個過程。一般情況下,認證成功之後,系統會給用戶分發令牌,令牌由用戶代理客戶端(如浏覽器)存儲,當用戶需要請求系統資源時候,客戶端将令牌傳遞給系統,系統通過檢驗令牌來核實訪問的用戶是誰,這樣避免了用戶每次獲取系統資源都需要提供信任憑證。 鑒權,有時候也可以說是授權

實現微服務預熱調用之後再開始服務(下)-編程思維

繼續分析其他接入點。 其他需要初始化的接入點分析 我們有時候還需要做一些自定義的初始化操作,但是如何在注冊到注冊中心狀态為 UP 也就是開始處理請求之前做這些操作呢? 為了更加與雲環境兼容,Spring Boot 從 2.3.0 版本之後引入了一些雲上部署相關的概念: LivenessState(存活狀态):就應用程序而言,存活狀态是指應用程序的狀态是否正常。如果存活狀态不正常,則意味着應用程序

實現微服務預熱調用之後再開始服務(上)-編程思維

最近線上發現一個現象,應用實例剛剛啟動的時候,開始接收請求之後發生了一小段時間的請求阻塞,從 HTTP Servlet 請求隊列監控上可以看出(基于 spring-web 的普通阻塞的 HTTP 服務器是有 HTTP 線程池的,當線程是滿了之後,請求在阻塞隊列中等待處理。基于 spring-webflux 的沒有這個現象,但是考慮的背壓問題其實和這個場景類似): 然後阻塞數量很快就下去了,通過

實戰!退出登錄時如何借助外力使JWT令牌失效?-編程思維

大家好,我是不才陳某~ 今天這篇文章介紹一下如何在修改密碼、修改權限、注銷等場景下使JWT失效。 文章的目錄如下: 解決方案 JWT最大的一個優勢在于它是無狀态的,自身包含了認證鑒權所需要的所有信息,服務器端無需對其存儲,從而給服務器減少了存儲開銷。 但是無狀态引出的問題也是可想而知的,它無法作廢未過期的JWT。舉例說明注銷場景下,就傳統的cookie/session認證機制,隻需要把存在服務

@FeignClient注解自定義接口超時時間-編程思維

問題描述   每個微服務都有統一的接口超時時間設定,但也存在一些特殊的業務場景,其接口需要較長的超時時間,比如:導出excel報表、上傳文件、拉取業務報表數據等等。此時,默認的超時設置就不能滿足需求,故需要設置各自的超時時間。 問題分析   使用@FeignClient 時,可以通過contextId屬性為不同的服務設置不同的超時時間,在config屬性中指定某服務的超時時間即可。 feign:

Spring注解之@FeignClient注解使用方法-編程思維

聲明接口時在代碼中通過@Resource注入容器之後即可使用。@FeignClient注解的常用屬性如下: value/name:value和name的作用一樣,用于指定FeignClient的名稱;如果沒有配置url,而且項目使用了Eureka 或者nacos,name屬性會作為微服務的名稱,用于服務發現。反之,隻是一個名稱。 url:一般用于調試,作用是指定@FeignClient調用

docker安裝nacos-編程思維

目錄一、docker安裝二、參考網址 一、docker安裝 1、安裝鏡像 docker pull nacos/nacos-server:2.0.2 2、新建目錄 mkdir -p /home/apps/nacos/logs 3、mysql新建nacos的數據庫,并執行腳本 下載地址:https://github.com/alibaba/nacos/blob/master/config/src

實戰幹貨!Spring Cloud Gateway 整合 OAuth2.0 實現分布式統一認證授權!-編程思維

大家好,我是不才陳某~ 今天這篇文章介紹一下Spring Cloud Gateway整合OAuth2.0實現認證授權,涉及到的知識點有點多,有不清楚的可以看下陳某的往期文章。 文章目錄如下: 微服務認證方案 微服務認證方案目前有很多種,每個企業也是大不相同,但是總體分為兩類,如下: 網關隻負責轉發請求,認證鑒權交給每個微服務控制 統一在網關層面認證鑒權,微服務隻負責業務 你們公司目前用的哪種方

OAuth2.0實戰:認證、資源服務異常自定義!-編程思維

大家好,我是不才陳某~ 這是《Spring Security 進階》的第4篇文章,往期文章如下: 實戰!Spring Boot Security+JWT前後端分離架構登錄認證! 妹子始終沒搞懂OAuth2.0,今天整合Spring Cloud Security 一次說明白! OAuth2.0實戰!使用JWT令牌認證! 文章都是成體系的,陳某默認看到這篇文章的讀者都已經看了前期的文章,之前的知識點

55張圖吃透Nacos,妹子都能看懂!-編程思維

大家好,我是不才陳某~ 這是《Spring Cloud 進階》第1篇文章,往期文章如下: 五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強? openFeign奪命連環9問,這誰受得了? 阿裡面試這樣問:Nacos、Apollo、Config配置中心如何選型?這10個維度告訴你! 阿裡面試敗北:5種微服務注冊中心如何選型?這幾個維度告訴你! 阿裡限流神器Sentinel奪命連環 17 問?

妹子始終沒搞懂OAuth2.0,今天整合Spring Cloud Security 一次說明白!-編程思維

大家好,我是不才陳某~ 周二發了Spring Security 系列第一篇文章,有妹子留言說看了很多文章,始終沒明白OAuth2.0,這次陳某花了兩天時間,整理了OAuth2.0相關的知識,結合認證授權服務+資源服務,一次性給大家唠明白! 這是《Spring Security 進階》第2篇文章,往期文章如下: 實戰!Spring Boot Security+JWT前後端分離架構登錄認證! 本篇

SpringCloud升級之路2020.0.x版-45. 實現公共日志記錄-編程思維

本系列代碼地址:https://github.com/JoJoTec/spring-cloud-parent 我們這一節在前面實現的帶有鍊路信息的 Publisher 的工廠的基礎上,實現公共日志記錄的 GlobalFilter。回顧下我們的需求: 我們需要在網關記錄每個請求的: HTTP 相關元素: URL 相關信息 請求信息,例如 HTTP HEADER,請求時間等等 某些類型的請求體

SpringCloud升級之路2020.0.x版-44.避免鍊路信息丢失做的設計(2)-編程思維

本系列代碼地址:https://github.com/JoJoTec/spring-cloud-parent 我們在這一節我們将繼續講解避免鍊路信息丢失做的設計,主要針對獲取到現有 Span 之後,如何保證每個 GlobalFilter 都能保持鍊路信息。首先,我們自定義 Reactor 的核心 Publisher 即 Mono 和 Flux 的工廠,将鍊路信息封裝進去,保證由這個工廠生成

SpringCloud升級之路2020.0.x版-44.避免鍊路信息丢失做的設計(1)-編程思維

本系列代碼地址:https://github.com/JoJoTec/spring-cloud-parent 我們在這一節首先分析下 Spring Cloud Gateway 一些其他可能丢失鍊路信息的點,之後來做一些可以避免鍊路信息丢失的設計,之後基于這個設計去實現我們需要的一些定制化的 GlobalFilter Spring Cloud Gateway 其他的可能丢失鍊路信息的點 經過

SpringCloud升級之路2020.0.x版-43.為何 SpringCloudGateway 中會有鍊路信息丢失-編程思維

本系列代碼地址:https://github.com/JoJoTec/spring-cloud-parent 在開始編寫我們自己的日志 Filter 之前,還有一個問題我想在這裡和大家分享,即在 Spring Cloud Gateway 中可能發生鍊路信息丢失的問題。 主要沖突 - Project Reactor 與 Java Logger MDC 之間的設計沖突 Poject React

SpringCloud升級之路2020.0.x版-42.SpringCloudGateway 現有的可供分析的請求日志以及缺陷-編程思維

本系列代碼地址:https://github.com/JoJoTec/spring-cloud-parent 網關由于是所有外部用戶請求的入口,記錄這些請求中我們需要的元素,對于線上監控以及業務問題定位,是非常重要的。并且,在這些元素中,鍊路信息也是非常重要的。通過鍊路信息,我們可以找到請求調用全鍊路相關的日志。并且,網關也是大部分請求鍊路起始的地方,記錄請求中的元素的同時,也要帶上鍊路信