1、背景 上了 springboot 微服務(wù)框架后會(huì)有很多微服務(wù)式廷,每次都到單個(gè)微服務(wù)自己的日志海洋里去找需要很大經(jīng)理承冰,日志跟蹤就會(huì)成為一個(gè)麻煩华弓。我們嘗試來(lái)尋找一個(gè)簡(jiǎn)化方案 2...
1、背景 上了 springboot 微服務(wù)框架后會(huì)有很多微服務(wù)式廷,每次都到單個(gè)微服務(wù)自己的日志海洋里去找需要很大經(jīng)理承冰,日志跟蹤就會(huì)成為一個(gè)麻煩华弓。我們嘗試來(lái)尋找一個(gè)簡(jiǎn)化方案 2...
Spring中的父子容器 背景 在很長(zhǎng)的一段時(shí)間里面,關(guān)于Spring父子容器這個(gè)問(wèn)題我一直沒(méi)太關(guān)注困乒,但是上次同事碰見(jiàn)一個(gè)奇怪的bug于是我決定重新了解一下Spring中的父...
背景 ConcurrentHashMap是一個(gè)線(xiàn)程安全的Map寂屏,正因?yàn)樗蔷€(xiàn)程安全的Map所以在使用時(shí)不注意也很可能帶來(lái)問(wèn)題。在業(yè)務(wù)上我們經(jīng)常會(huì)遇到一種情況就是通過(guò)一個(gè)線(xiàn)程安...
用Retrofit代替openFeign簡(jiǎn)直就是開(kāi)倒車(chē) 我不知道你怎么想的
再見(jiàn) Feign!推薦一款微服務(wù)間調(diào)用神器迁霎,跟 SpringCloud 絕配在微服務(wù)項(xiàng)目中吱抚,如果我們想實(shí)現(xiàn)服務(wù)間調(diào)用,一般會(huì)選擇Feign考廉。之前介紹過(guò)一款HTTP客戶(hù)端工具Retrofit秘豹,配合SpringBoot非常好用!其實(shí)Retrofit不僅支...
Spring之@Import 前言 在平常開(kāi)發(fā)中我們自己開(kāi)發(fā)的組件通常我們可以通過(guò)Spring的XML配置文件昌粤,注解(例如@Component)既绕,配置類(lèi)(例如@Configu...
Redis的持久化 Redis的持久化方式有兩種:快照(RDB)文件和追加文件(AOF文件) 兩種方式。 RDB 基本原理 RDB這種方式的工作原理就是Redis會(huì)創(chuàng)建一個(gè)子...
閱讀該部分內(nèi)容時(shí)涮坐,需要提前了解B+Tree樹(shù)基本知識(shí)點(diǎn)凄贩,否則可能有些內(nèi)容你并不能很好的體會(huì)到。對(duì)于下面幾點(diǎn)內(nèi)容如果不是很清楚袱讹,可以閱讀我之前寫(xiě)的Mysql簡(jiǎn)敘[https:/...
RabbitMQ模型 上面的圖是官網(wǎng)中關(guān)于一條消息發(fā)送的整個(gè)流程疲扎,消息會(huì)經(jīng)歷下面幾個(gè)流程: 生產(chǎn)者將消息發(fā)送到Exchange Exchange根據(jù)Routing Key路由...
什么是索引 對(duì)于索引的定義你可能并不知道,但是我們?nèi)粘I钪袩o(wú)時(shí)不刻都有用到廓译。當(dāng)你打電話(huà)給某人時(shí)评肆,手機(jī)通訊錄會(huì)按照名字的首字母分組排序债查,然后你就能根據(jù)用戶(hù)名很快的找到對(duì)應(yīng)的手...
需求背景 在我們寫(xiě)接口的時(shí)候可能會(huì)有這樣的需求非区,例如對(duì)于BigDecimal類(lèi)型的字段有時(shí)候需要顯示到小數(shù)點(diǎn)后兩位,有時(shí)候需要顯示成百分比盹廷,有時(shí)候則取整征绸。 例如上面的訂單模型...
什么事務(wù)傳播機(jī)制 首先這個(gè)傳播機(jī)制跟數(shù)據(jù)庫(kù)是沒(méi)有關(guān)系的,不會(huì)因?yàn)槟闶荕ysql或者oracle而有所區(qū)別俄占。它是Spring框架中提供的一種事務(wù)增強(qiáng)機(jī)制管怠,合理的利用能很好的解決...
什么是延時(shí)隊(duì)列 延遲隊(duì)列首先它是一個(gè)隊(duì)列,作為隊(duì)列它的第一個(gè)特征是有序的缸榄,而之所以它被稱(chēng)為延時(shí)隊(duì)列它還有一個(gè)更重要的特性就是延時(shí)渤弛。對(duì)于普通隊(duì)列而言,如果有消費(fèi)者訂閱隊(duì)列消費(fèi)甚带,...
什么是死信隊(duì)列 在RabbitMQ中一條消息出現(xiàn)下面三種情況就會(huì)成為死信: 消息被nack或者reject且requeue參數(shù)為false 消息因TTL過(guò)期 隊(duì)列超出長(zhǎng)度限制...
背景 項(xiàng)目中需要記錄用戶(hù)的請(qǐng)求參數(shù)便于后面查找問(wèn)題她肯,對(duì)于這種需求一般可以通過(guò)Spring中的攔截器或者是使Servlet中的過(guò)濾器來(lái)實(shí)現(xiàn)。這里我選擇使用過(guò)濾器來(lái)實(shí)現(xiàn)鹰贵,就是添加...
背景 新創(chuàng)建的SpringBoot項(xiàng)目需要用到ElasticSearch晴氨,但是因?yàn)镋S版本為7.0與SpringBoot中的Spring Data Elasticsearch...
ThreadLocal 在我之前的文章中介紹過(guò)什么是ThreadLocal[http://www.reibang.com/p/611c2e31fa58?fileGuid=Q...
起因 在看SpringMVC官方文檔中,有這么一個(gè)類(lèi)WebApplicationInitializer碉输,通過(guò)這個(gè)類(lèi)可以代替web.xml文件直接配置籽前,而且文檔中說(shuō)這個(gè)類(lèi)由Se...
為什么要使用日志 剛開(kāi)始接觸java時(shí)都使用過(guò)System.out來(lái)調(diào)試,通過(guò)它我們能打印出一些關(guān)注的信息到控制臺(tái)便于我們調(diào)試。這種方式只限于我們平常開(kāi)發(fā)時(shí)簡(jiǎn)單測(cè)試枝哄,但是生產(chǎn)...
常見(jiàn)的scope Spring及其其他組件提供了多種Scope肄梨,但是我們?cè)谑褂肧pring和他們的組件時(shí)用的最多的Scope只有幾個(gè)。 singleton:Spring默認(rèn)的...
起因 在學(xué)習(xí)SpringCloud的過(guò)程中挠锥,我創(chuàng)建了一個(gè)服務(wù)提供者user-service峭范,我設(shè)置的spring.application.name=user_service。...