原创 webflux項目的兩個配置問題

1.如果同時引入springmvc和webflux,會導致webflux不生效 <dependency> <groupId>org.springframework.boot</groupId>

原创 Project Reactor源碼分析2-線程切換 1.聲明階段 2.subscribe、onSubscribe、request階段 3.總結 參考

4種線程調度器 使用當前線程的 Schedulers.immediate() 一個被複用的單一線程 Schedulers.single(),如果希望是創建新線程的模式請使用 Schedulers.newSingle() 一個彈性線程池 S

原创 Project Reactor源碼分析1-底層實現原理分析 1.聲明階段 2.subscribe 參考

Flux.just("tom", "jack", "allen") .map(s-> s.concat("@qq.com")) .filter(s -> s.l

原创 DDD筆記1:簡介及戰略設計 1.DDD的背景和來源 2.戰略設計 參考

1.DDD的背景和來源 1.1 DDD的核心思想和解決的痛點問題 1.1.1 什麼是模型和建模 模型是對領域的抽象和模擬。 建模是針對特定問題建立領域的合理模型。 1.1.2 軟件系統的複雜性來自哪裏 複雜性來源: 業務複雜導致模型複雜

原创 DDD筆記5:實踐中的問題和關鍵點 1.CI/CD 2.領域溝通和建模如何避免漏掉重要細節 3.DDD的常見問題、爭論以及侷限性 參考

1.CI/CD CI持續集成 通過自動化流程持續把各個開發者的工作集成到一起,避免過大的集成成本。 包括代碼規範化版本控制、代碼檢查、代碼構建和自動化單元測試。 CD繼續交付 通過自動化測試和部署流程使軟件系統隨時處於可發佈狀態。

原创 Gateway源碼剖析 0.自動配置類 1.NettyWebServer 2.核心處理流程 參考

在微服務架構中,各個服務都是獨立運行來完成某個特定領域的功能,服務間通過 REST API 或 RPC 進行通信。當前端一個請求發生時,比如查看商品詳情,客戶端可能要調用商品服務、庫存服務、評價服務等多個微服務,如果客戶端直接對接各個微服務

原创 Windows下執行bat閃退問題

如果直接點擊bat執行,閃退會沒法看到錯誤日誌。 此時可以換一種執行方式,直接在bat路徑,輸入cmd,通過cmd輸入腳本文件名執行,此時不會閃退,會看到錯誤原因。

原创 Dubbo 3.0源碼剖析 1.手寫模擬Dubbo 2.服務導出 3.服務引入 4.服務調用

1.手寫模擬Dubbo 定義一個接口,服務提供者需要實現該接口。該接口需要打成一個jar包,然後服務提供者和調用者都要依賴該接口的jar包。 Dubbo需要處理Http請求(HttpServer)、Dubbo請求 服務提供者需要啓動Htt

原创 Sentinel源碼剖析 1.Spring整合Sentinel 2.構建ProcessorSlot鏈 3.責任鏈的的調用 4.責任鏈的exit邏輯 參考

1.Spring整合Sentinel org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.alibaba.cloud.sentinel.Sentinel

原创 Zookeeper Leader選舉源碼剖析 1.尋找啓動類 2.網絡通信架構 3.選舉PK 4.選舉完成後,後面加入服務器 5.Leader、Follower連接、同步 6.Leader崩潰選舉

1.尋找啓動類 首先從啓動腳本找啓動主類: ZOOMAIN是啥? if [ "x$JMXDISABLE" = "x" ] || [ "$JMXDISABLE" = 'false' ] then echo "ZooKeeper JMX

原创 Zookeeper基礎原理 1.Zookeeper簡介 2.順序一致性 3.ZooKeeper數據結構 4.Zookeeper集羣 5.客戶端 6.應用場景 參考

1.Zookeeper簡介 ZooKeeper 是一個開源的分佈式協調框架,是Apache Hadoop 的一個子項目,主要用來解決分佈式集羣中應用系統的一致性問題。 ZooKeeper本質上是一個分佈式的小文件存儲系統(Zookeeper

原创 RocketMQ源碼剖析 1.各個組件啓動源碼、框架結構 2.發送消息 3.消費消息 4.Broker端

1.各個組件啓動源碼、框架結構 1.1 NameServer啓動 NamesrvStartup#main 1)NamesrvController controller = createNamesrvController(args);創建c

原创 Kafka基礎原理 1.Kafka適用場景 2.Kafka基本概念 3.生產者 4.Broker 5.消費者 6.Zookeeper 7.一些問題及解決方案 參考

官方文檔:https://kafka.apache.org/24/documentation.html#brokerconfigs 1.Kafka適用場景 日誌收集:一個公司可以用Kafka收集各種服務的log,通過kafka以統一接口服務

原创 RocketMQ基礎原理 1.MQ的作用、優缺點及對比 2.RocketMQ的結構 3.生產者 4.消費者 5.broker 6.消息類型 7.RocketMQ使用中常見的問題 參考

1.MQ的作用、優缺點及對比 MQ的作用主要有以下三個方面: 異步 作用:異步能提高系統的響應速度、吞吐量。 解耦 作用: 1、服務之間進行解耦,纔可以減少服務之間的影響。提高系統整體的穩定性以及可擴展性。 2、另外,解耦後可以實現數據分

原创 Springboot/Spring總結

1.構造SpringApplication對象 推測web應用類型this.webApplicationType(NONE、REACTIVE、SERVLET) 2.從spring.factories中獲取BootstrapRegist