SpringCloud 技能 原始碼檢視技巧

2021-08-09 08:17:12 字數 1775 閱讀 3579

author qiurimangcao 秋日芒草

日誌配置檔案:可以通過配置來在不改動配置檔案來適應不同的環境

配置檔案採用git或本地配置方式

有配置就讀取配置檔案中的值,沒有就讀取預設值

將配置中心生產配置都調整過來(configrepo),一般開發都是將配置中心放git上的

通過配置中心去讀取和檢視配置檔案

用環境變數去執行時切換,而不是通過修改配置檔案打包

授權token的用途

portainer.io容器中服務管理,刪掉服務,手動加服務

dockerhub的使用

zipkin的使用

使用feign呼叫不同的服務

降級工廠處理,根據不同服務的異常進行不同業務上的處理

樂觀鎖來控制多執行緒併發,一次都會更新版本號,每次都去獲取版本號看版本號是否已經更新,更新過了就回滾

什麼時候使用訊息佇列mq,二個系統資料互動可以通過直接呼叫rpc,還有就是通過mq,檔案系統中介軟體來處理

使用mq可以削峰填谷,保證佇列乙個乙個執行處理

接力賽有先後順序的執行順序,除了mq還可以用定時器-任務排程

通過mq去傳送簡訊

spring cloud stream不基於廠商的實現,自帶整合rabbitmq和kafka

在stream通過通道去關聯具體的mq或其他元件

stream啟用通道去往對用元件中傳送訊息,簡訊系統接受mq的資料,監聽定義的通道資訊

所採用的是什麼序列化的,json格式,訊息編譯碼,傳送編碼,取出解碼

stream和mq是怎麼整合的,通過配置檔案,配置steam

預設序列化的設定,如編解碼器,並設定每乙個通道所繫結的mq,設定具體的接入mq的實現

實現不同的業務對應不同的mq

指定佇列傳送,並保證冪等性,因為有多個例項,可能存在多個服務消費者消費這一條資料,實現點對點的去消費

發完簡訊後,發布乙個訂單取消事件,沒有目的地,所以只要有人監聽通道就能獲得事件,主要訂閱就可以收到訊息,實現**

不同mq對應不同的特色和不同的特性

系統間解耦和適配

spring cloud bus 將訊息傳送給mq,當配置檔案中的配置修改後會通過這個mq去通知到不同的例項和系統

bus就是event和mq的整合,就是傳送乙個事件,如遠端重新整理,再次發布事件,子類事件監聽,收到事件(是否是自己發的),然後往mq中寫入這條訊息

bus是乙個全域性事件,如配置檔案更新,但如一般的訂單業務就不能用全域性事件了

可以配置多個mq,每個mq對應不同的業務,實現不同的通道

springbus和mq是同乙個公司的

使用了多種協議,所以要了解這些協議的本身才能更好的整合

**閱讀和文件理解的方法和思路

分布式呼叫鏈式追蹤 - 2017-08-13 tony

原始碼檢視技巧

正常情況下:

1.看demo示例 - 能做什麼? 手冊 demo 結合業務場景的demo

2.分析框架的背景,spring的周邊-ioc aop - 方法呼叫 獲取token 大膽猜測和分析

3.開啟debug日子級別,成熟的框架,日誌會列印很多。看日誌的習慣,包含重要的資訊,根據要檢視包名去設定日誌級別和分析,日誌太大也無法檢視並分析

4.debug**調式

特殊方式:

5.想方法去讓**拋乙個異常,並丟擲堆疊資訊,通過分析堆疊異常來分析**邏輯,或者打斷點看堆疊資訊(這方法是知道入口的情況才使用)

6.找入口,硬啃原始碼(配置檔案,http入口,註解入口)

Spring Cloud 總概述(技術目錄 原始碼)

spring cloud 一 微服務介紹 spring cloud 二 版本和技術選型 spring cloud 三 搭建父工程專案 spring cloud 四 搭建 module 子專案 spring cloud 五 eureka 服務註冊與發現 spring cloud 六 zookeeper...

SpringCloud微服務電商專案原始碼

做公號很久了,聽到粉絲問的最多的問題就是 有沒有新的完整的專案,因為現在很多流傳的專案都太老了,實戰意義不是很強。很多程式設計師每項技術單獨拿出來有可能很厲害,例如 springcloud springboot redis nginx mysql rabbitmq等,但是普遍缺乏將所有的這些技術整合...

下一代防火牆是用什麼技能「撩妹成功的」?

你的企業打算部署下一代防火牆 ngfw 嗎?你知道ngfw是以何種魅力打動購買者的嗎?本文有你想知道的有關ngfw採購前需要掌握的所有答案,趕緊get起來 防火牆是最基本的網路安全控制機制之一,在過去二十年裡,防火牆已從乙個簡單的包過濾裝置發展成為乙個能夠同時管控大量網路通訊狀態的複雜系統。然而儘管...