前言 接上一篇偏向鎖的十連問,繼續(xù)升級到重量級鎖的進階版,檢驗一下自己離精通重量級鎖還有多遠。建議在讀之前了解下Java中重量級鎖的實現(xiàn)原理。 重量級鎖的ObjectMoni...
前言 接上一篇偏向鎖的十連問,繼續(xù)升級到重量級鎖的進階版,檢驗一下自己離精通重量級鎖還有多遠。建議在讀之前了解下Java中重量級鎖的實現(xiàn)原理。 重量級鎖的ObjectMoni...
前言 對于Hotpot JVM中的偏向鎖,大部分開發(fā)者都比較熟悉或者至少聽說過。那我們用下面10個關(guān)于偏向鎖的進階問題,檢驗一下自己離精通還有多遠。 如何判斷當前鎖對象為偏向...
前言 Etcd集群通過Raft協(xié)議的選舉機制產(chǎn)生一個Leader,這樣客戶端在對etcd存儲的數(shù)據(jù)進行更新時,就可以直接將請求發(fā)給Leader。一旦回復(fù)客戶端成功,則表示數(shù)據(jù)...
前言 選舉是Raft實現(xiàn)數(shù)據(jù)一致性的安全保證,一個raft集群能夠正常運行,必須有且僅有一個Leader存在,一次成功選舉是集群能夠正常運行的前提。Raft協(xié)議對選舉的定義和...
你把daoAuthenticationProvider()方法中的daoProvider.setUserDetailsService(userDetailsService());改成daoProvider.setUserDetailsService(jwtUserService());試一下,好像是Bean定義的問題
Spring Security做JWT認證和授權(quán)上一篇博客講了如何使用Shiro和JWT做認證和授權(quán)(傳送門:http://www.itdecent.cn/p/0b1131be7ace),總的來說shiro是一個比較早期...
前言 之前解析過Raft協(xié)議基本原理(傳送門)[http://www.itdecent.cn/p/7a313173b56a],一直想找個具體實現(xiàn)來看一下。Etcd是一款開源...
不知道你指的是client端還是broker端
RocketMQ源碼解析(八)-Broker#消息發(fā)送從這篇文章開始,主要看一下Broker處理一條消息的完整過程:接收Producer發(fā)來的消息->存儲消息->將消息推給Consumer。這一篇主要看下接收Producer消息...
中間是按協(xié)議封包然后網(wǎng)絡(luò)發(fā)送,收到broker回復(fù)后回調(diào)this.pullAPIWrapper.pullKernelImpl()這一步傳入的pullCallback。
RocketMQ通信層用的netty,因為這里主要講mq所以netty的部分沒提,你可以看下NettyRemotingClient這個類,在初始化時傳入了NettyClientHandler
RocketMQ源碼解析(四)-Consumer消息消費方式 Consumer分為兩種,PullConsumer和PushConsumer。從名字就可以看出一種是拉取的方式,一種是主動Push的方式。具體實現(xiàn)如下: Pul...
可以把日志貼一下看看
RocketMQ源碼解析(八)-Broker#消息發(fā)送從這篇文章開始,主要看一下Broker處理一條消息的完整過程:接收Producer發(fā)來的消息->存儲消息->將消息推給Consumer。這一篇主要看下接收Producer消息...
前言 前面用了十幾篇文章講了Dubbo的基本原理和代碼實現(xiàn),基本的調(diào)用過程覆蓋的差不多了。后續(xù)文章講講在面試中經(jīng)常被問到的Dubbo原理。大部分Dubbo源碼解讀文章都把SP...
前言 異步編程中,callback是經(jīng)常用到的結(jié)果獲取方式,做為一個負責任的框架,Dubbo自然也要提供對Callback的支持。相對于進程內(nèi)的異步結(jié)果返回,RPC中對異步的...
前言 接上一篇中的服務(wù)暴露邏輯,當接口使用Dubbo協(xié)議暴露服務(wù)時,會啟動一個DubboServer來監(jiān)聽消費端的請求,端口的綁定和監(jiān)聽都是通過Exchanger層來實現(xiàn)的。...
前言 在一次完整的Dubbo RPC調(diào)用過程中,需要用到兩次代理。一次是在服務(wù)的調(diào)用方,代理面向的是用戶代碼,用戶在調(diào)用接口的時候,實際調(diào)用的是接口的代理,代理實現(xiàn)中將用戶調(diào)...
前言 在一次正常的RPC調(diào)用發(fā)起之前,做為服務(wù)提供方必須先保證自己的服務(wù)已經(jīng)啟動,并且監(jiān)聽某個端口來接收Consumer發(fā)來的請求,Dubbo中稱這個暴露服務(wù)的動作為expo...
@小坐38 broker下線,這里面涉及到兩個邏輯,一個是broker的上下線也會導致consumer重新做一次負載均衡。另一個是broker是master+slave的集群部署,如果master掛了,當前開源版本的rocketmq沒有自動選舉功能重新選一個master,不過如果集群設(shè)置了可以從slave讀取消息,consumer就會從slave消費剩余的消息。
RocketMQ源碼解析(四)-Consumer消息消費方式 Consumer分為兩種,PullConsumer和PushConsumer。從名字就可以看出一種是拉取的方式,一種是主動Push的方式。具體實現(xiàn)如下: Pul...
前言 上一篇中Exchange層根據(jù)服務(wù)提供方的協(xié)議類型來初始化一個Client負責和Server端的通信。Client將負責和Server端建立連接,并定時發(fā)送心跳來維護連...
前言 前兩篇文章講了消費端代理的生成,最終到請求發(fā)送操作由Invoker來完成。Invoker同時集成了集群服務(wù)發(fā)現(xiàn)和路由功能,還集成了調(diào)用過程中的自定義擴展Filter。I...
前言 上一篇講Proxy的文章中看到,構(gòu)建Proxy需要傳入Invoker參數(shù)。除基本方法外,其它接口方法的調(diào)用最終都是調(diào)用的invoker.invoke()方法。從rpc調(diào)...
@寫的一手好代碼 producer在發(fā)送的時候會指定queueId
RocketMQ源碼解析(九)-Broker#消息存儲ConsumeQueueConsumeQueue的作用 上一篇文章講到Broker在收到消息后,通過MessageStore將消息存儲到commitLog中,但是consumer在消費消息的時候是按...
前言 上一篇講了Dubbo消費端初始化的過程,在應(yīng)用啟動時,Dubbo會掃描classpath下的類,找到@Reference注解后注入生成的遠程服務(wù)代理。這里面主要涉及到I...