原创 廣播消費模式的消費者OFFSET_MOVED_EVENT預警問題調查

一、現象 mqcloud持續發送topic爲digg-topic的消費者digg-group發生偏移量錯誤的預警郵件,詳細預警如下: 即:digg-group請求從偏移量156798開始消費,但是broker上最小的消息偏移量是

原创 1.快速入門

一、簡介 RestTemplate是spring提供的http客戶端模版,類似JdbcTemplate,它是線程安全的,支持切換不同的http客戶端,目前支持HttpClient-4.3, OKHttp3, 基於netty4實現的

原创 3.結合ribbon

一、簡介 ribbon是一個支持http,tcp客戶端的負責均衡庫。 二、引入 在這裏,結合spring-boot的方式,在pom中添加如下依賴: <dependency> <groupId>org.springframe

原创 5.ServerListUpdater

一、簡介 顧名思義,這個類用於server列表的更新。 二、接口 這個類定義的方法較多,這裏只看兩個重要的: public interface ServerListUpdater { /** * an inter

原创 4.調用關係及超時說明

調用關係圖類似如下: User發起http請求,這裏省略了controller的一層,只爲表明RestTemplate的調用過程 Hystrix採用aop攔截的方式,對標註HystrixCommand的方法進行攔截 Rest

原创 4.agent配置詳解

所有的代碼分析基於pinpoint 1.6.2 常用配置 profiler.sampling.enable=true 是否進行採樣,true表示開啓採樣,如果關閉採樣,將不進行trace profiler.sampling

原创 3.agent通信

所有的代碼分析基於pinpoint 1.6.2 在上篇文章agent追蹤已經分析到部分代碼,這裏進行一個詳細的介紹。 一、入口#### 在每次追蹤完畢後,需要調用這個方法trace.traceBlockEnd(),此方法內部使用s

原创 ehcache之offheap

一、背景 offheap作爲擺脫gc的本地緩存來使用,對於緩存大量數據和提升應用的性能大有裨益。 EHCache的offheap層直接使用了Terracotta-OSS開源的offheap-store作爲底層實現。 但是offhe

原创 springboot多數據源支持

mybatis+多數據源+多連接池配置 網上大多配置都是mybatis+多數據源,並沒有對應的多數據池,這裏列舉一個完整的例子,廢話不多說,直接看代碼 1.pom.xml pom裏只用增加一個mybatis整合spring-boo

原创 10.重試

tmp.md 一、簡介 ribbon的重試是指consumer調用provider發生異常後,ribbon發起重試。 RestTemplate和Feign使用的重試機制不一樣,下面分開進行說明。 二、RestTemplate重試

原创 ehcache之offheap部分重要類說明

PageSource 頁源,負責頁分配,默認是的實現是:UpfrontAllocatingPageSource-預交付的page源。 重要屬性: List buffers = new ArrayList<>(); 存放分配

原创 RocketMQ新的訂閱組CONSUME_FROM_LAST_OFFSET爲啥無效?

一、背景 之前遇到一個問題,就是一個新的訂閱組,指定集羣方式消費,使用DefaultMQPushConsumer,第一次啓動指定的consumeFromWhere是CONSUME_FROM_LAST_OFFSET,但是卻消費了好久

原创 3.ping

一、簡介 字如其名,ribbon採用IPing接口來探測server是否存活。 二、接口 接口很簡單,代碼如下: public interface IPing { public boolean isAlive(Server

原创 1.ribbon

ribbon作爲客戶端負載均衡的重要組件,很有必要對其內部機制瞭解清楚,以便在生產中更熟練的應用。 關於ribbon網上的源碼分析很多,例如: http://blog.didispace.com/springcloud-sourc

原创 9.與springcloud結合

一、簡介 使用ribbon,一般都是和springcloud結合使用,springcloud提供了膠水代碼來整合ribbon。 二、接口 ServiceInstanceChooser該接口只有一個方法: public interf