原创 記錄一個HttpClient超時連接配置不生效的問題排查過程

現象 首先有一個被服務由於內存有限,導致巨卡。導致調用他的服務出現線程阻塞。jstack打印線程池如下所示: 開始排查解決問題 第一步:檢查代碼看是否超時設置是否正確,因爲感覺超時設置正確不可能阻塞。 找到注入client的位置:

原创 真實場景sql優化持續更新(老司機必備)

概述 下述場景,均來自實際產品線上經驗,出於保密考量,所有需求場景都是仿造的,模擬遇到過的真實場景。 場景一: 統計數據(Order by 不具備唯一性導致的分頁數據混亂) 需求 在實際業務場景中,我們經常遇到統計分析,比如現在有一張學生表

原创 數據結構之稀疏矩陣C++版

//只是簡單的演示一下,這個實際運用視乎不怎麼多,所以java版不再實現 /* 希疏矩陣應用於對數據的壓縮,僅僅保留不爲0的數據 稀疏矩陣的轉置,可以由多種方式,下面演示的稍顯簡單,時間複雜度略高O(n^2) */

原创 數據結構之隊列java版

//java由於泛型的擦除,用起來十分不方便 abstract class BaseQueue<T>{ abstract boolean enQueue(T x); abstract T front(T x);//注意這裏

原创 數據結構之二叉樹的構建C++版

二叉樹的構建要注意與鏈式表的區別,二叉樹這裏的構建十分低級,每個樹只是構建了一個單一的二叉樹節點,總體來看是有下向上構建的。用戶需要手動去構建自己需要的樹,而不是直接去插入數據就到二叉樹中了,因爲不是鏈式結構的單一,二叉樹十分豐富的。 提

原创 說說SpringMVC從http流到Controller接口參數的轉換過程

一,前言 談起springMVC框架接口請求過程大部分人可能會這樣回答:負責將請求分發給對應的handler,然後handler會去調用實際的接口。核心功能是這樣的,但是這樣的回答未免有些草率。面試過很多人,大家彷佛約定好了的一般,給的都是

原创 微服務通信之feign的配置隔離

前言 由上文我們知道針對某一個Feign接口,我們可以給他設置特定的配置類。那如果現在有一個服務,我們只想對A服務配置一個攔截器攔截請求而不影響其他服務,那應該怎麼做呢? 一、feign接口配置 由前面的文章我們知道了feign的代理過程以

原创 微服務通信之ribbon實現原理

前言 上一篇我們知道了feign調用實現負載均衡是通過集成ribbon實現的。也較爲詳細的瞭解到了集成的過程。現在我們看一下ribbo是如何實現負載均衡的。寫到這裏我尚未去閱讀源代碼,我在這裏盲猜一下: 他肯定是有一個從註冊中心拉取配置的模

原创 微服務通信之feign集成負載均衡

前言 書接上文,feign接口是如何註冊到容器想必已然清楚,現在我們着重關心一個問題,feign調用服務的時候是如何抉擇的? 一、ReflectiveFeign.FeignInvocationHandler 從上文知道feign接口調用實質

原创 微服務通信之feign的註冊、發現過程

前言 feign 是目前微服務間通信的主流方式,是springCloud中一個非常重要的組件。他涉及到了負載均衡、限流等組件。真正意義上掌握了feign可以說就掌握了微服務。 一、feign的使用 feign 的使用和dubbo的使用本質上

原创 面經 - 開放性問題總結

  最近面試聚美優品以及睿沿科技都掛在一些開放性問題上,簡單分享一下:   (畢業面百度也是最後一面開放性問題掛了,感覺都喜歡問技術選型,大數據量儲存檢索解決方案)   MQ 選型:   ROCKETMQ整體架構:   負責消息儲存的bro

原创 編碼藝術-代碼架構的思考

一、前言 從入職到現在已有一年。想想現在與當初自己的期望雖有遺憾但也還是有所進步。我個人對自己的認知是敢於嘗試與實踐新的技術與新的理論,說大膽也不爲過。因此工作中寫的代碼或多或少也被詬病、被批評、被質疑。但我覺得若人人都循規蹈矩、人人都不去

原创 快速排序

                package com.JBUtils.Arithmetic;   /*   快速排序大體說來:     1)就是從一堆數選出一個數,將小與該數的數放在其左邊,把大於該數的數排在其右邊。(子問題)     2

原创 基於http(s)協議的模板化爬蟲設計

聲明:本文爲原創,轉載請註明出處 本文總共三章,前面兩章廢話吐槽比較多,想看結果的話,直接看第三章(後續會更新,最近忙着畢設呢,畢設也是我自己做的,關於射頻卡的,有時間我也放上來,哈哈)。 一,系統總體結構   首先吐槽一下,標題取得好

原创 分佈式系統概述

分佈式系統簡介       任何東西都是由淺到深的過程,分佈式系統也由單機系統(比如一臺電腦)演變而來。     當數據太多的時候,單臺機經受的數據運算壓力比較大。解決辦法就用多臺機器來運算。將所有的運算的機器看作是一個整體,那麼這個整