收藏 / 列表

老污的貓 - 領域驅動設計(Domain-Driven Design)

DDD 全稱Domain-Driven Design,意為領域驅動設計,是一種軟件開發的方法論,強調通過領域模型來指導複雜系統的設計與開發,核心概念如下 限界上下文(Bounded Context) 實體(Entity)、值對象(Value Object) 聚合(Aggregate)、領域事件(Domain Event) 通用語言(Ubiquitous Language) DDD M

程序員

大廠碼農老A - 凌晨零點,一個TODO,差點把我們整個部門抬走

那晚杭州的悶熱,至今記憶猶新。 2021年,我剛來到杭州這座“卷城”,入職了一家夢想中的互聯網大廠。作為一名電商新人,我一頭扎進了促銷和會場的研發中。 那晚,我們正為一個S級的“會員閃促”活動做最後的護航,它將在零點準時生效。作戰室裏燈火通明,所有人都盯着大盤,期待着活動上線後,GMV曲線能像火箭一樣發射。 然而,我們等來的不是火箭,而是雪崩。 剛過0點,登登登登… 告警羣裏的消息開始瘋狂刷屏,聲

springboot , JAVA , 故障 , 後端 , 前端

悲傷的鴨蛋 - 會話技術、過濾器、攔截器

登錄校驗:判斷用户是否登錄,從而決定是否讓其執行相關操作。(已登錄則可執行,未登錄則不可,必須登錄後才能執行) 具體操作步驟: 1、記錄用户已經成功登錄的標記(會話技術)會話:指的就是瀏覽器與服務器之間的一次連接。在一次會話當中,是可以包含多次請求和響應的(瀏覽器不能關閉、服務器不能斷開)會話跟蹤:服務器識別多次請求是否來自於同一瀏覽器,以實現在同一次會話的多次請求間共享數據。此技術一

filter , JAVA , token , Jwt

打盹的猴子 - 策略模式(Strategy Pattern)深度解析教程

一、模式定義 策略模式屬於行為型設計模式,通過定義算法族並將其封裝為獨立的策略類,使得算法可以動態切換且與使用它的客户端解耦。該模式通過組合替代繼承,符合開閉原則(對擴展開放,對修改關閉)。 二、核心角色 Strategy(策略接口) 定義所有支持的算法的公共接口 ConcreteStrategy(具體策略) 實現策略接口的具體算法

設計模式 , JAVA , 策略模式

牛肉燒烤屋 - 詳解分佈式緩存不一致性的所有情況!除了分佈式緩存外,其它場景又是如何解決緩存一致性的呢?

[toc] 引言 持久化層和緩存層的一致性問題也通常被稱為「雙寫一致性問題」,“雙寫”意為數據既在數據庫中保存一份,也在緩存中保存一份。對於一致性來説,包含強一致性和弱一致性,強一致性保證寫入後立即可以讀取,弱一致性則不保證立即可以讀取寫入後的值,而是儘可能的保證在經過一定時間後可以讀取到,在弱一致性中應用最為廣泛的模型則是最終一致性模型,即保證在一定時間之後寫入和讀取達到一致的狀態。 我們一般會

redis , 緩存 , JAVA , 一致性

seazhan - 【RocketMQ 消息中間件】RocketMQ篇之-消息存儲 為什麼性能高 CommitLog 刷盤機制 同步 異步

RocketMQ篇之-消息存儲 RocketMQ作為一款分佈式消息中間件,高可靠性是其最重要的特性之一。 所以需要將消息進行持久化存儲,以保證消息不丟失。 RocketMQ的消息存儲是RocketMQ的核心組件之一,負責消息的存儲和傳輸。RocketMQ的消息存儲主要包括CommitLog、ConsumeQueue、IndexFile、Checkpoint等幾個部分。 (前置)消息存儲交互流

中間件 , JAVA , 消息隊列

王中陽講編程 - 開發者利器: 從Amazon CodeWhisperer 到 Amazon Q

自ChatGPT火爆以來,生成式AI助手也是層出不窮,目前自然是以Microsoft Copilot(基於GPT)普及度最高了吧。看着微軟風光了這麼久,其他雲廠商怎麼可能會甘願落後? 最近,來自AWS的re:Invent 2023大會的明星產品:Amazon Q,就算是對這個生成式AI助手老大哥Copilot的強力迴應了吧。 小試牛刀: Amazon CodeWhisperer AWS 之前提供A

亞馬遜雲科技 , 2023reinvent , challenge

lindsay_bubble - Leetcode 85_maximal_rectangle_最大矩形

一、棧 承接Leetcode 84,柱狀圖算最大矩形面積,把該題入參改為柱狀圖高度即可 PS:這版本手搓int[]做棧和直接用ArrayDeque做棧,結果僅差2ms;但題84相差近15ms。 public int maximalRectangle(char[][] matrix) { if (matrix.length == 0) {

leetcode , , JAVA

wasdquiop - centos7 安裝 redis

centos7 安裝 redis redis是由C語言開發,安裝之前需要確保服務器已經安裝了gcc,可以通過如下命令查看機器是否安裝: gcc -v 如果沒有安裝則通過以下命令安裝: yum install -y gcc 安裝包 鏈接: https://pan.baidu.com/s/1dY9QPwWzUM-9bKtCmWIixw 提取碼: qrtb 也可以在線下載 wget htt

redis , arm , centos7 , Linux , JAVA

witt - mybatis升級到3.4.5後導致的偽bug

關鍵詞: mybatis、foreach、foreach context scope、MyBatis3.4.5、BindingException 背景: 隨着團隊開發人數越來越多,項目迭代越來越久,加上一些半吊子開發的盲目自信,項目如果不夠健壯,就會出現莫名其妙的問題,甚至讓測試團隊對某些開發一瞬間喪失全部信任。 起因是團隊有150多個服務的分佈式微服務項目,服務之間有RPC調用關係,也有公

spring , maven , mapper , JAVA , Mybatis

步履不停 - mongodb explain分析

記錄下mongodb explain信息,使用的mongodb版本為4.0.9 項目關聯查詢了兩張表用户表與用户登錄日誌表,分別為user_info與user_login_info,腳本如下: db.t_user_info.explain('allPlansExecution').aggregate([{ $lookup:{ from:"t_user_login_info"

索引 , mongodb , explain

Java陳序員 - 一款極簡的聊天應用

大家好,我是 Java陳序員。 今天,給大家介紹一個開源的聊天應用程序,支持PC端和移動端。 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。 項目介紹 HasChat —— 一個基於 Vue3 + Socket.io 的聊天應用,同時支持PC端和移動端。 功能特性: 技術棧: PC 網頁版前端:Vue3 + Vite + TypeS

express , vue.js , github , 數據庫

半夏之沫 - Mybatis源碼-動態SQL的實現原理

大家好,我是半夏之沫 😁😁 一名金融科技領域的JAVA系統研發😊😊 我希望將自己工作和學習中的經驗以最樸實,最嚴謹的方式分享給大家,共同進步👉💓👈 👉👉👉👉👉👉👉👉💓寫作不易,期待大家的關注和點贊💓👈👈👈👈👈👈👈👈 👉👉👉👉👉👉👉👉💓關注微信公眾號【技術探界】 💓👈👈👈👈👈👈👈👈 前言

where , foreach , SQL , if , Mybatis

jacheut - JAVA IO流簡介

1. IO流概述 IO,即in和out,也就是輸入和輸出,指應用程序和外部設備之間的數據傳遞,常見的外部設備包括文件、管道、網絡連接。 流(Stream),是一個抽象的概念,是指一連串的數據(字符或字節),是以先進先出的方式發送信息的通道。 關於流的特性有下面幾點: 1.先進先出:最先寫入輸出流的數據最先被輸入流讀取到。 2.順序存取:可以一個接一個地往流中寫入一串字節,讀出時也將按寫

JAVA , io

福 - BlockingQueue - 基於TransferStack的SynchronousQueue

ThreadPoolExecutor以BlockingQueue存儲待執行任務,包括SynchronousQueue、LinkedBlockingQueue和ArrayBlockingQueue,今天的目的是源碼角度深入研究SynchronousQueue。 之後計劃是繼續研究LinkedBlockingQueue和ArrayBlockingQueue,搬開所有絆腳石之後再開始線程池。 基本概念#

多線程 , JAVA , 阻塞隊列 , 隊列

點墨 - java lambda表達式 回調函數

java使用lambda表達式做回調函數,定義一個interface寫一個方法即可(如果一個接口只有一個抽象方法(包括繼承的),該接口是一個函數接口,函數接口可以使用lambda表達式實現),lambda表達式函數內部可以獲取外部變量,會保存堆棧信息 源碼 Callback.java public interface Callback{ void onCompletion(); } Tes

lambda , JAVA , 回調

清醒的人最荒唐 - ImportBeanDefinitionRegistrar與BeanDefinitionRegistryPostProcessor的區別

概述 如果想實現自定義註冊bean到spring容器中,常見的做法有兩種 @Import+ImportBeanDefinitionRegistrar BeanDefinitionRegistryPostProcessor BeanDefinitionRegistryPostProcessor與ImportBeanDefinitionRe

spring , 自定義 , 後端開發 , JAVA , ide

湯太鹹 - java.util.function包詳解-Lambda

您有任何問題或意見都可以在評論區回覆哦,歡迎大家一起來討論,共同學習進步 java.util.function包中有43個function interface,但是實際上只有四大類: Consumers消費者 Supplier供應商 Functions功能 Predicates謂詞 1.Consumers一個對象,BiConsumer兩個對象 實際都是對傳入的T實體進行操作

函數式編程 , function , lambda , JAVA

華為雲開發者聯盟 - 我是一個請求,我該何去何從

摘要:本文主要分析在cse框架下一個請求是怎麼被接受和處理的。 本文分享自華為雲社區《我是一個請求,我該何去何從?》,原文作者:向昊。 前置知識 cse的通信是基於vert.x來搞的,所以我們首先得了解下里面的幾個概念: Verticle:You can think of verticle instances as a bit like actors in the Actor Model

編程 , route , 請求 , 條件表達式

cicadasmile - 理解Java中對象基礎Object類

一、Object簡述 源碼註釋:Object類是所有類層級關係的Root節點,作為所有類的超類,包括數組也實現了該類的方法,注意這裏説的很明確,指類層面。 所以在Java中有一句常説的話,一切皆對象,這話並不離譜。 1、顯式擴展 結論驗證 既然Object作為所有類的父級別的類,則不需要在顯式的添加繼承關係,Each01編譯期就會提示移除冗餘。 public class Each01 extend

JAVA , object

mob64ca13fe62db - 最新基準測試:Apache Kafka、Apache Pulsar和RabbitMQ哪個最快?_開源_Alok Nikhil

terminal-bench與Apache Kafka:評測事件流處理方案 引言 事件流處理是現代數據架構的核心組件,而Apache Kafka作為分佈式事件流平台,已成為行業標準。本文將介紹如何使用terminal-bench(t-bench)評測基於Apache Kafka的事件流處理方案,幫助開發人員和運維人員快速評估系統性能、

事件流 , 流處理 , 前端開發 , apache , Javascript

mizeyar - Java + Fuseki 實戰:一鍵創建圖譜、自動推理隱含知識

Java + Fuseki 實戰:一鍵創建圖譜、自動推理隱含知識 在企業級知識圖譜系統中,數據的全生命週期管理(創建、寫入、更新、刪除、查詢)和語義推理能力是實現智能決策的關鍵。Apache Jena Fuseki 作為標準的 SPARQL 服務,提供了完整的 HTTP 接口支持。本文將通過完整代碼示例,演示如何在 Java 應用中:

知識挖掘 , MySQL , 推理服務 , 知識圖譜 , 數據庫 , fuseki , JAVA

野小白 - 本地快速搭建Kibana集成OpenTelemetry實現分佈式日誌追蹤

本文基於windows 11系統進行組件實例的部署(非fleet),Elasticsearch、Kibana版本均採用目前最新的版本8.13.0。 *注意:Elastic的OpenTelemetry Collector Exporter在 7.13 中被棄用,取而代之的是Elastic Observability(OTLP)中對OpenTelemetry Line Protocol的原生支持。這導

kibana , elasticsearch , trace , JAVA , elk