原创 RocketMQ之broker主從同步的實現

我們可以看到在DefaultMessageStore的start方法中通過haService的start()方法啓動自己的HA服務。 public void start() throws Except

原创 SpringBoot之SpringApplication(1)

總算是懷着熱切的心情打開了spring boot的源碼,不知道能看到怎麼樣的結果,不過算是能壓抑期末考緊張的心情。啓動類,都是調用SpringApplication的run()方法,傳入的是加入@Configuration註解的類,跟參數

原创 go的rpc

我們先從服務端開始分析,先調用rpc.register方法註冊暴露的服務對象。裏面調用了DefaultServer的register方法func (server *Server) register(rcvr

原创 RocketMQ之broker消息存儲

從broker啓動的註冊處理器配置中可以看到 public void registerProcessor() { /** * SendMessageProcessor

原创 RocketMQ之Producer異步消息發送

調用producer的send()方法,並傳入msg跟回調callBack實例。DefaultProducer的send方法調用DefaultProducerImpl的send方法,該方法直接調用sendD

原创 Quartz中的定時任務

Quartz中管理的stdScheduler內部對應的是一個QuartzScheduler,看其構造方法 public QuartzScheduler(QuartzSchedulerResources

原创 RocketMQ之Pull消費者客戶端啓動

Pull消費者客戶端(主動拉取消息的消費者)即構造了DefaultMQPullConsumer對象,DefaultMQPullConsumer繼承了ClientConfig類。我們先看其構造方法 pu

原创 RocketMQ之Producer啓動

RocketMQ中的生產者通過構造DefaultMQProducer實例,我們來看下DefaultMQProducer。 protected final transient DefaultMQProd

原创 RocketMQ之PullConsumer消息拉取實現

PullConsumer拉去消息需要自己調用pull方法主動去拉取消息,調用DefaultMQPullConsumer的pull方法。 public PullResult pull(MessageQu

原创 Ribbon負載均衡策略之WeightedResponseTimeRule

WeightedResponseTimeRule這個策略每30秒計算一次服務器響應時間,以響應時間作爲權重,響應時間越短的服務器被選中的概率越大。 public void setLoadBalance