原创 JDK21最終版協程實現之虛擬線程

1 全新併發編程模式 JDK9 後的版本你覺得沒必要折騰,我也認可,但是JDK21有必要關注。因爲 JDK21 引入全新的併發編程模式。 一直沽名釣譽的GoLang吹得最厲害的就是協程了。JDK21 中就在這方面做了很大的改進,讓Java併

原创 Service 層異常拋到 Controller 層處理還是直接處理?

0 前言 一般初學者學習編碼和[錯誤處理]時,先知道[編程語言]有一種處理錯誤的形式或約定(如Java就拋異常),然後就開始用這些工具。但卻忽視這問題本質:處理錯誤是爲了寫正確程序。可是 1 啥叫“正確”? 由解決的問題決定的。問題不同,解

原创 spring security爲啥是個垃圾框架?

古時候寫代碼,權限這塊寫過一個庫,基本就是一個泛型接口,裏面有幾個方法: 如驗證輸入的principal和credentials,返回token和authorities和roles,role就是一堆authorities集,也就說就是返回一

原创 說透 Nacos 一致性協議

1 Nacos ⼀致性協議 1.1 爲什麼 Nacos 需要⼀致性協議 Nacos儘可能減少用戶部署以及運維成本,做到用戶只需要⼀個程序包,就快速單機模式啓動 Nacos 或集羣模式啓動 Nacos。而 Nacos 是⼀個需要存儲數據的組件

原创 Vue3實戰06-CompositionAPI+<script setup>好在哪?

Vue 3 的Composition API + <script setup> 標籤內定義的變量和函數,都可以在模板中直接使用。 ### 1.2 顯示清單應用 實現累加器後,回到src/pages/Home.vue 組件,使用

原创 測試大姐提了個bug,爲什麼你多了個options請求?

1 下班前的寂靜 剛準備下班呢,測試大姐又給我提個bug,你看我這就操作了一次,network裏咋有兩個請求? 我心一驚,”不可能啊!我代碼明明就調用一次後端接口,咋可能兩個請求!“。打開她的截圖一看:多個options請求。 我不慌不忙解

原创 Nacos 註冊中心的設計原理:讓你的應用輕鬆實現高效註冊與發現!

當應用開始脫離單機運行和訪問時,服務發現就誕生了。目前的網絡架構是每個主機都有⼀個獨立的 IP 地址,服務發現基本都是通過某種方式獲取到服務所部署的 IP 地址。 DNS 協議是最早將⼀個網絡名稱翻譯爲網絡 IP 的協議,在最初的架構選型中

原创 釘釘消息已讀、未讀咋實現的嘞?

前言 一款app,消息頁面有:錢包通知、最近訪客等各種通知類別,每個類別可能有新的通知消息,實現已讀、未讀功能,包括多少個未讀,這個是怎麼實現的呢?比如用戶A訪問了用戶B的主頁,難道用rabitmq給B發通知消息嗎?量大了成本受得了嗎?有沒

原创 掌握JDK21全新結構化併發編程,輕鬆提升開發效率!

1 概要 通過引入結構化併發編程的API,簡化併發編程。結構化併發將在不同線程中運行的相關任務組視爲單個工作單元,從而簡化錯誤處理和取消操作,提高可靠性,並增強可觀察性。這是一個預覽版的API。 2 歷史 結構化併發是由JEP 428提出的

原创 如何在數據中臺中提高效率並節省成本?

上節討論瞭如何保障數據中臺的數據質量,讓數據“準”。除了“快”和“準”,數據中臺還離不開“省”。隨數據規模越來越大,成本越來越高,如不合理控制成本,還沒等你挖掘出數據應用價值,企業利潤就被消耗完。 能否做到精細化成本管理,關乎數據中臺項目成

原创 構建數據中臺的三要素:方法論、組織和技術

知道要轉型,要建設數據中臺,卻不知咋做,咋辦? 現在有很多講“如何建設數據中臺”文章,觀點各不相同: 數據中臺是數據建設方法論,按照數據中臺設計方法和規範實施就可建成數據中臺 數據中臺背後是數據部門組織架構變更,把原先分散的組織架構形成一

原创 Jprofile解析dump文件使用詳解

1 Jprofile簡介 官網 下載對應的系統版本即可 性能查看工具JProfiler,可用於查看java執行效率,查看線程狀態,查看內存佔用與內存對象,還可以分析dump日誌. 2 功能簡介 選擇attach to a loca

原创 RabbitMQ實戰(三)-高級特性

0 相關源碼 1 你將學到 如何保證消息百分百投遞成功 冪等性 如何避免海量訂單生成時消息的重複消費 Confirm確認消息、Return返回消息 自定義消費者 消息的ACK與重回隊列 限流 TTL 死信隊列 2 保證消息的百分百投遞成

原创 Java的CAS樂觀鎖原理解析

CAS全稱 Compare And Swap(比較與交換),在不使用鎖的情況下實現多線程之間的變量同步。屬於硬件同步原語,處理器提供了基本內存操作的原子性保證。juc包中的原子類就是通過CAS來實現了樂觀鎖。 CAS算法涉及到三個操作數:

原创 《阿里巴巴Java開發手冊》碼出高效詳解(一)- 爲什麼要學習阿里編碼手冊

《Java 開發手冊》(以下簡稱《手冊》)是每個 Java 工程師人手必備的一本參考指南。該手冊包括 編程規約、異常日誌、單元測試、安全規約、MySQL 數據庫、工程結構、設計規約 7 個部分 ,涵蓋了 Java 開發的常見知識點。認真實踐