原创 架構之零拷貝

https://blog.51cto.com/12182612/2424692?source=dra 傳統讀操作   JAVA用傳統方式進行讀操作時,整體流程如上圖,具體如下: 1、應用程序發起讀數據操作,JVM會發起read()系統

原创 Nginx狀態碼499原因分析和處理

nginx日誌如下: request_time:單位ms,請求處理時間,指nginx從客戶端接受第一個字節開始,到把請求結果數據全部發送給客戶端,並寫入ngnix日誌後爲止到全部處理時間。(request processing time

原创 Spring Cloud Gateway中uri和path一樣時路徑被刪除,導致返回404

現象 路由配置 - id: r_invitation uri: lb://Gateway #eureka中服務名爲Gateway predicates: - Path=/gateway/** 請求路徑:http://ip

原创 SpringCloud:Eureka訪問權限配置

一、場景 當需要連接eureka server不在同一個內網時,需要通過外網訪問,這時爲了防止外人看到相關信息,需要對其增加訪問限制。 即可通過spring security組件進行安全控制。 二、實現 1.eureka server 1

原创 JMeter結果分析(已淘汰,建議使用wrk或者ab)

聚合報告 聚合報告參數詳解:  Label:sampler樣本名稱,不清楚測試結果時,修改樣本測試後,會顯示不同的樣本名稱 #Samples:樣本數,執行的次數,100表示執行了100次,users(用戶併發請求數) * loopCou

原创 Error reactor.netty.ReactorNetty$InternalNettyException: java.nio.channels.ClosedChannelException

現象 使用Spring Cloud Gateway時,在線上偶爾出現異常,但是很少且很難復現。 在壓測的最後幾條日誌也會出現,當時沒有放在心上,線上是不是會有error告警,故此花時間研究一番。 [4eee5339] Error [re

原创 架構之腦裂

腦裂(brain-split):腦裂是指在主備切換時,由於切換不徹底或其他原因,導致客戶端和Slave誤以爲出現兩個active master,最終使得整個集羣處於混亂狀態。解決腦裂問題,通常採用隔離(Fencing)機制,包括三個方面:

原创 SpringCloud微服務框架學習目錄

SpringCloud:生態圈架構 SpringCloud:Eureka Server 搭建(單點、集羣) SpringCloud:Eureka Client-生產者服務 SpringCloud:Eureka Client-消費者服務 S

原创 Spring Cloud:APM工具Zipkin+Sleuth、pinpoint、SkyWalking、CAT

簡介 Zipkin 由Twitter公司開源,開放源代碼分佈式的跟蹤系統,用於收集服務的定時數據,以解決微服務架構中的延遲問題,包括:數據的收集、存儲、查找和展現。 pinpoint pinpoint是韓國人開源的 APM (Ap

原创 服務監控工具prometheus和zabbix的對比

  一、兩種監控工具的歷史簡介: prometheus:   Kubernetes自從2012年開源以來便以不可阻擋之勢成爲容器領域調度和編排的領頭羊,Kubernetes是Google Borg系統的開源實現,於此對應Prometheu

原创 WebFlux中獲取response body數據

場景 @Component public class LogRespFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(

原创 反應式編程Reactor: 環境搭建

ps:基於Spring Boot 最近版本號 https://projectreactor.io/docs 放入項目pom中 <dependency> <groupId>io.projectrea

原创 反應式編程響應式reactive基本概念

反應式編程 (reactive programming) 是一種基於數據流 (data stream) 和 變化傳遞 (propagation of change) 的聲明式 (declarative) 的編程範式。 反應式編程是在命令式

原创 SpringCloud:Eureka微服務跨分區調用region、zone、gateway

PS:未經測試,後補 目的 系統爲分區架構,減少中心化服務,避免單點風險。 region1和region2爲完全獨立分區,分區數據無交集,互不依賴。 region1中的處理由於特殊原因用到region2中的服務,需要提供技術支持。 思路

原创 Apollo自動加載熱更新

摘要 Apollo默認會對Value和ApolloJsonValue註解的數據進行熱更新。 其他數據需要通過ApplicationContext.publishEven刷新到應用中。 當多個namespace時,優先使用先加載的數據,如n