原创 斷路器對比Sentinel、Hystrix、resilience4j

Sentinel 強大的流量控制組件,爲微服務提供可靠性、彈性和監控,面向雲原生微服務的高可用流控防護組件。 隨着微服務的流行,服務和服務之間的穩定性變得越來越重要。Sentinel 以流量爲切入點,從流量控制、熔斷降級、系統負載保護等多

原创 Netty網絡框架學習目錄

Netty學習(一):簡介 Netty學習(二):簡單例子

原创 WebFlux(reactor)中獲取完整response body數據

場景 使用Spring Cloud Gateway(SCG)時,想在網關日誌中輸出返回日誌,但由於數據流只能被讀取一次,必須使用特定方式進行重寫才能正常返回到前端。 處理過程 起初使用fluxBody.map讀取數據流,會出現多次輸出的情

原创 wrk -H 無效 --header

使用wrk 加入header參數時無法獲取到,如下 wrk -t1 -c6 -d1s http://10.2.20.12:8080/fapi/gw/hi/1 -H "token:1231" 問題在於 "token:1231" 必須 寫成

原创 壓測工具之wrk安裝及使用

安裝 通過git編譯安裝 #下載wrk git clone https://github.com/wg/wrk #進入目錄 cd wrk #編譯 make 通過git直接下載 git clone https://github.com/

原创 Mac 軟件顯示已損壞無法代開

執行破解軟件時,由於軟件被傳改無法執行。 將系統偏好設置>安全性與隱私中的設置調整爲允許“任何來源” 高版本iOS中沒有顯示“任何來源”,在終端窗口中執行下面的命令即可 #顯示‘任何來源’ sudo spctl --master-d

原创 idea工具:idea中取消關閉coverage

現象:不小心點到了coverage,代碼覆蓋率檢查 解決辦法:點擊菜單欄中的Run,裏面有個Hide coverage,就取消了。

原创 idea無法顯示yml提示

進入idea>preferences>plugins>yaml>yaml support>install 安裝,重啓即可。 效果:

原创 Spring Cloud Gateway壓測(wrk、k8s、nginx)

壓測環境 K8S容器中安裝wrk,scg(Spring Cloud Gateway)發佈在k8s容器中,使用nginx訪問scg,scg轉發到nginx的html頁面。 k8s容器配置:4核、8G內存 wrk:https://github

原创 SpringCloud:Eureka服務down狀態日誌解析

服務啓動 15:14:57.556 INFO 10 --- [nio-8080-exec-3] c.n.e.registry.AbstractInstanceRegistry : Registered instance FRAMEW

原创 Spring Cloud 2:Eureka詳細配置

Eureka Server配置項 #服務端開啓自我保護模式,前面章節有介紹 eureka.server.enable-self-preservation=true #掃描失效服務的間隔時間(單位毫秒,默認是60*1000)即60秒 eu

原创 Guava生成MD5、SHA1、SHA256

import com.google.common.base.Charsets; import com.google.common.hash.Hashing; import org.junit.jupiter.api.Test; /**

原创 openjdk無法打開啓動VisualVM

必須安裝oracle版的jdk才能啓動 默認情況下雙擊就能打開 需要指定可以使用--jdkhome參數 sh visualvm --jdkhome /Library/Java/JavaVirtualMachines/jdk1.8.0_14

原创 linux命令:ctrl+移動編輯

光標移動 ctrl+A:光標跳到行首  ctrl+E:光標移到行尾 ctrl+B:光標左移一個字母 ctrl+F:後移一個字符 編輯 ctrl+H:刪除光標前一個字符,同backspace鍵相同 ctrl+D:刪除光標後一個字符 ctrl

原创 Spring Cloud Gateway:使用ReadBodyPredicateFactory讀取request的body,可能無法匹配404

需求 獲取request中的body內容 解決方案 SCG自帶ReadBodyPredicateFactory斷言,可以將body中的內容讀取到exchange對象中,使用exchange.getAttribute("cachedRequ