原创 Dubbo SPI機制示例

  1、dubbo SPI區別於JDK SPI,根據指定的key值,獲取接口對應的實現,具體由下面支付示例展示: 訂單支付接口,使用@SPI 註解標註,默認是阿里支付 package spi; import com.alibaba.d

原创 Dubbo中的概念URL、Invocation、Invoker、Protocol

URL:定義了調用的url如協議、協議、參數等信息 public final class URL implements Serializable { private static final long serialVersio

原创 Dubbo服務引用

1. 簡介 上一篇文章詳細分析了服務導出的過程,本篇文章我們趁熱打鐵,繼續分析服務引用過程。在 Dubbo 中,我們可以通過兩種方式引用遠程服務。第一種是使用服務直連的方式引用服務,第二種方式是基於註冊中心進行引用。服務直連的方式僅適合在

原创 jvm內存模型

程序計數器(Program Counter Register):是一塊較小的內存空間,他可以看做是當前線程所執行的字節碼的行號指示器。在虛擬機的概念模型裏,字節碼解釋器工作時就是通過改變這個計數器的值來選取下一條需要執行的字節碼指令,分支

原创 dubbo標籤的service與provider、reference與consumer的區別

<dubbo:service  與 <dubbo:provider是同一個級別 provider是原始的服務提供方式:配置參數超級多,比較繁瑣,學習成本大 service是在provider的基礎上給了很多默認值,用戶使用時只需配置少量必

原创 kafka消費端速度慢解決方案

一、增加patition數量, 有多少個patition就會啓多少個消費者線程去消費,跟消費者服務節點的數量無關,只能patition有關。 二、patition一樣的情況下,改爲批量消費,一次拉取多條數據,max.poll.record

原创 集羣限流架構設計

一、單機版 1、在本地進程中進行統計,使用常用限流方式 2、Nginx中限流,使用lua腳本統計經過該Nginx的實例和接口量   二、集羣版 A、B、C三個服務端節點組成集羣,需要將某個接口限制TPS最大爲1萬; 使用一個統計監控服務節

原创 dubbo選javassist作爲缺省動態代理原因

dubbo動態代理javassist和jdk區別: 生成動態代理類:都可以根據字節碼生成class文件,JAVAASSIST既可以通過動態代理也可以通過字節碼生成class文件 執行代理類的方法,javassist更快   packag

原创 Apollo爲什麼用長輪詢而不是長連接?

1、長連採用HTTP而非TCP的主要考慮點是多語言的適配; 2、採用異步servlet,單機可以支撐1W個連接,也就是一萬個客戶端,一般10臺服務器就能抗住一箇中小型公司的連接數;  

原创 dubbo消費端調用過程

下方 淡藍背景( Consumer ):服務消費方使用的接口 上方 淡綠色背景( Provider ):服務提供方使用的接口 中間 粉色背景( Remoting ):通信部分的接口   1、引用接口,此時可看到接口實現,爲代理實現,h

原创 webSocket

原文鏈接:https://www.liaoxuefeng.com/wiki/1022910821149312/1103303693824096 WebSocket是HTML5新增的協議,它的目的

原创 利用zk實現分佈式鎖

1、在zk上創建臨時順序節點 2、獲取路徑下子節點列表 3、用自己節點的序號對比最小的節點序號 4、如果相等,則說明獲取分佈式鎖成功,直接執行業務;執行完業務刪除本節點; 5、如果不相等,獲取比自己小並且最靠近自己的節點(避免羊羣效應,並

原创 客戶端連接zk集羣負載均衡策略

集羣:zk1:2181,zk2:2181,zk3:2181 zkClient採用輪詢的方式連接集羣節點,那麼會不會都連接到zk1上,這樣就達不到負載均衡的效果? zkClient配置好集羣所有節點後,放在一個List中,使用Collect

原创 zookeeper腦裂問題(無法自動解決,只能重啓解決)

A、B、C三個節點,A爲leader,BC爲follower 一、A和BC斷開 1、當B、C都與A斷開時,A連接不到其他服務節點,認爲其他節點都宕機了,此時A仍然認爲自己是leader,繼續提供服務,讀服務沒問題,可繼續;當使用寫服務時,

原创 redis的底層數據結構和五大數據類型底層實現原理

底層數據結構:https://www.cnblogs.com/ysocean/p/9080942.html 五大數據類型底層實現原理:https://www.cnblogs.com/ysocean/p/9102811.html