原创 架構師-Netty(二)

Netty Netty 支持的功能與特性 Netty 是一個異步、事件驅動的用來做高性能、高可靠性的網絡應用框架。主要的優點有: 框架設計優雅,底層模型隨意切換適應不同的網絡協議要求。 提供很多標準的協議、安全、編碼解碼的支持

原创 java併發-併發工具類

CountDownLatch java.util.concurrent.CountDownLatch 發令槍,允許一個或多個線程等待其他線程完成操作 主線程需要等待所有的子線程執行完後進行彙總,join方法可以實現這一點,但是不夠

原创 dubbo服務註冊流程

服務註冊流程 RegistryProtocol 在dubbo服務發佈流程已經分析了發佈服務流程還有服務註冊流程 export 在RegistryProtocol#export繼續服務註冊流程 // 根據invoker中的url

原创 spring的DefaultListableBeanFactory

DefaultListableBeanFactory public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory imp

原创 dubbo服務消費過程(二)

服務的訂閱和通知 Directory Directory 繼承自 Node 接口,Node 這個接口繼承者比較多,像 Registry、Monitor、Invoker 等均繼承了這個接口。這個接口包含了一個獲取配置信息的方法

原创 dubbo服務消費過程(一)

如何實現服的消費 生成遠程服務的代理 獲取目標服務的url地址 實現遠程網絡通信 實現負載均衡 實現集羣容錯 Invoker 服務引入 消費端的代碼解析是從下面這段代碼開始的 <dubbo:reference id="

原创 架構師-kafka(四)

高級特性 除了正常的消息發送和消費,在使用 Kaflca 的過程中難免會遇到一些其他高級應用類的需求 消費回溯 可以通過原生 Kaflca 提供的KaflcaConsumer.seek()方法來實現 延時隊列 消息軌跡 k

原创 Spring的AbstractBeanFactory

AbstractBeanFactory /** * Abstract base class for BeanFactory implementations, * providing the full capabilities

原创 spring的BeanDefinition

Bean模型定義 上的類中都是定義瞭解析bean的定義存儲的的dto模型 BeanMetadataElement BeanMetadataElement中只有一個方法,用來獲取元數據元素的配置源對象: public inter

原创 dubbo內核spi機制

Java SPI Java SPI策略模式,具體實現步驟: (1) 定義一個接口及對應的方法 (2) 編寫接口的實現類、 (3) 在META-INF/services/目前下,創建一個以接口全路徑命名的文件,如com.tes

原创 java併發-線程生命週期

爲是麼需要線程 併發的發展歷史 真空管和穿孔打卡 最早的計算機只能解決簡單的數學運算問題,比如正弦、餘弦等。運行方式:程序員首先把程序寫到紙上,然後穿孔成卡片,再把卡片盒帶入到專門的輸入室。輸入室會有專門的操作員將卡片的程序輸

原创 spring的AbstractAutowireCapableBeanFactory

AbstractAutowireCapableBeanFactory /* * AbstractBeanFactory 子類, 並實現AutowireCapableBeanFactory * 提供bean創建(構造函數創建

原创 java併發-線程相關方法

線程通知與等待 wait()/wait(long timeout) 當一個線程調用一個共享變量的wait()方法時,該調用線程會被阻塞掛起,直到發生下面幾件事情之一才返回: (1)其他線程調用了該共享對象的notify()或者no

原创 Dubbo的服務發佈過程

Dubbo架構 整體設計 首先看下官網說明: config 配置層:對外配置接口,以 ServiceConfig, ReferenceConfig 爲中心,可以直接初始化配置類,也可以通過 spring 解析配置生成配置類 p

原创 dubbo的集羣容錯

Cluster層 在維服務環境中,爲了保證服務的高可用,服務通常都是以集羣方式出現,很少出現單點服務。服務不是每時每刻都保持良好運行,如網絡抖動、服務短暫不可用等,需要集羣進行自動容錯。在本地測試、服務降級,則需要Mock返回結