原创 kafka詳解(二)--kafka爲什麼快

前言 Kafka 有多快呢?我們可以使用 OpenMessaging Benchmark Framework 測試框架方便地對 RocketMQ、Pulsar、Kafka、RabbitMQ 等消息系統進行對比測試,因爲暫時沒有測試條件(後續

原创 kafka詳解(一)--kafka是什麼及怎麼用

kafka是什麼 在回答這個問題之前,我們需要先了解另一個東西--event streaming。 什麼是event streaming 我覺得,event streaming 是一個動態的概念,它描述了一個個 event ( "somet

原创 配置中心的設計-nacos vs apollo

簡介 前面我們分析了攜程的 apollo(見 詳解apollo的設計與使用),現在再來看看阿里的 nacos。 和 apollo 一樣,nacos 也是一款配置中心,同樣可以實現配置的集中管理、分環境管理、即時生效等等。不過,nacos 還

原创 我的JAVA面試題備忘錄

前言 以下是我收集的一些問題,有的是網上摘錄的,有的是自己參加面試被問到的,有的是工作或學習時遇到的,等等。 爲什麼要記錄這些呢? 一方面,我相信,這樣做對我自己的技術提升是有幫助的。在全文結構上我儘量使問題連貫地形成知識體系,而不是堆積的

原创 spring內嵌cglib包,這裏藏着一個大坑

問題發現 2022-01-21 早上 9 點,訂單系統出現大面積的“系統未知錯誤”報錯,導致部分用戶無法正常下單。查詢後臺日誌,可以看到大量的 duplicate class attempt。 java.lang.LinkageError-

原创 如何設計一個更通用的查詢接口

臨近放假,手頭的事情沒那麼多,老是摸魚也不好,還是寫寫博客吧。 今天來聊聊:如何設計一個通用的查詢接口。 從一個場景開始 首先,我們從一個簡單的場景開始。現在,我需要一個訂單列表,用來查詢【我的訂單】,支持分頁,且支持高級搜索。 整個查詢流

原创 簡單的2021年終總結

當大家開開心心跨年的時候,我在補年終總結。 小時候恨不得時間過得快一點,現在不這麼想了。 我的 2021年,都是平靜、反覆的一天天,沒有出書、沒有開源、沒有跳槽、沒有升官。沒錯,這可能是你看過的最 low、最不爭氣的總結,很抱歉給各位大佬拖

原创 簡單聊聊mysql的髒讀、不可重複讀

最近,在一次 mysql 死鎖的生產事故中,我發現,關於 mysql 的鎖、事務等等,我所知道的東西太碎了,所以,我試着用幾個例子將它們串起來。具體做法就是通過不斷地問問題、回答問題,再加上“適當”的比喻,來逐步構建腦子裏的“知識樹”。 需

原创 如何使用原生的Hystrix

什麼是Hystrix 前面已經講完了 Feign 和 Ribbon,今天我們來研究 Netflix 團隊開發的另一個類庫--Hystrix。 從抽象層面看,Hystrix 是一個保護器。它可以保護我們的應用不會因爲某個依賴的故障而 down

原创 一個校驗接口引發的思考--我真的瞭解Response嗎

一個校驗接口 最近,我需要對接一個外部接口,基本功能是:校驗指定的門店是否完善了貨運信息。接口大致是這樣的: POST https://******/Dealer/CheckCarrier Heads:Authorization=****,

原创 如何使用原生的Ribbon

什麼是Ribbon 之前分析了如何使用原生的Feign,今天我們來研究 Netflix 團隊開發的另外一個類庫--Ribbon。 Ribbon 和 Feign 有很多相似的地方,首先,它們本質上都是 HTTP client,其次,它們都具備

原创 記一次Orika使用不當導致的內存溢出

hprof 文件分析 2021-08-24,訂單中心的一個項目出現了 OOM 異常,使用 MemoryAnalyzer 打開 dump 出來的 hprof 文件,可以看到 91.27% 的內存被一個超大對象javassist.ClassPo

原创 如何使用原生的Feign

什麼是Feign Feign 是由 Netflix 團隊開發的一款基於 Java 實現的 HTTP client,借鑑了 Retrofit、 JAXRS-2.0、WebSocket 等類庫。通過 Feign,我們可以像調用方法一樣非常簡單地

原创 關於接口設計的思考--我們真的需要這麼多入參嗎

爲什麼說起接口設計 最近,我改造一箇舊接口時發現,這個接口有 30 多個入參,而事實上並不需要那麼多,而且,這個接口還存在比較大的安全隱患。所以,關於如何設計接口入參,我想談談自己的一些想法。 當然,只是一家之言,不一定就是對的。 給以下需

原创 詳解apollo的設計與使用

簡介 apollo 是一款由攜程團隊開發的配置中心,可以實現配置的集中管理、分環境管理、即時生效等等。在這篇博客中,我們可以瞭解到: 爲什麼使用配置中心 如何設計一個配置中心 apollo 是如何設計的 如何使用 apollo 爲什麼使