原创 volatile和Cache一致性協議之MESI

volatile關鍵字 轉自:http://www.cnblogs.com/dolphin0520/p/3920373.html         volatile這個關鍵字可能很多朋友都聽說過,或許也都用過。在Java 5之前,它是一個

原创 (九)監控模塊-monitor

先用一張圖來說明dubbo中的monitor模塊結構: 基於Filter來實現服務調用監控功能 @Activate(group = {Constants.PROVIDER, Constants.CONSUMER}) public cl

原创 (十一)併發控制

一、消費者併發控制 消費者對同一個方法可以進行併發數的控制,dubbo也是基於過濾器的設置功能來實現併發控制的。 通過配置actives的值,在可以Consumer配置,也可以在Provider配置,一般可以在提供者配置的,可以在提供者配

原创 (八)過濾器-Filter

序前 dubbo會掃描META-INF/dubbo/internal/,META-INF/dubbo/,META-INF/services/目錄下的文件, 比如,過濾器的擴展類,則會掃描com.alibaba.dubbo.rpc.Filt

原创 (七)數據序列化-hessian2

使用hessian2協議,也就是傳輸對象序列化,它是二進制的RPC協議,與RMI不同的是,以標準的二進制格式定義請求的信息(請求的對象、方法、參數等),可以跨語言通訊,而RMI只侷限於java間通訊。 1.hessian2原理 java-

原创 (十四)異步調用

異步調用可以通過文件配置: <dubbo:reference id="fooService" interface="com.alibaba.foo.FooService"> <dubbo:method name="findF

原创 線上服務內存OOM問題定位三板斧

相信大家都有感觸,線上服務內存OOM的問題,是最難定位的問題,不過歸根結底,最常見的原因:本身資源不夠申請的太多資源耗盡58到家架構部,運維部,58速運技術部聯合進行了一次線上服務內存OOM問題排查實戰演練,將內存OOM問題定位三板斧分享

原创 (十三)異常分析

調用dubbo服務,有時出現異常信息 Forbid consumer xxx.xxx.xxx.xxx(ip) access service xx.xx(service全包的名稱) from registry xxx.xxx.xxx.xxx

原创 (十)dubbo原理

本文討論的原理是,假設dubbo框架使用protocol是"dubbo",server和client底層傳輸數據是"netty"。   原理機制 遠程調用時,發送請求的封裝對象 com.alibaba.dubbo.remoting.exc

原创 分佈式事務-例子講解

從一個典型例子入手講下分佈式事務。 分佈式事務的典型例子: 跨行轉賬 銀行A的賬號 Bob 銀行B的賬號 Smith 銀行A的模塊,庫A Bob向S

原创 VisualVM監視

整理下怎麼通過JDK提供的視圖化工具來監視java應用。 1.配置文件 遠程機器上,建立jstatd 的 security policy 文件,比如建立在$JAVA_HOME/bin目錄下: 文件jstatd.all.policy: gr

原创 (十五)RpcContext對象

比如現在消費者A調用提供者B, 在RPC調用之前,消費者可以調用RpcContext.getContext().setAttachment(key, value); 設置一些隱含參數,然後在提供者B可以通過RpcContext.getCo

原创 slf4j和log4j的源碼及異步日誌

我們在項目中,一般這樣使用slf4j來記錄日誌:org.slf4j.Logger logger = org.slf4j.LoggerFactory.

原创 (十二)服務雪崩-熔斷器

由於分佈式系統將不同模式做成不同的服務,在一個系統1中,可能會調用了不同服務,比如會調用服務A、B、C, 而服務跟服務之間也會相互調用的,比如服務D、E會調用服務A; 當調用服務A失敗時,系統1、服務D、服務E都會失敗了,這樣由於一個服務

原创 序列化protobuf

參考:https://developers.google.com/protocol-buffers/https://developers.google.com/protocol-buffers/docs/encoding屬性標記proto