原创 RocketMQ系列(二)環境搭建

RocketMQ的基本概念在上一篇中給大家介紹了,這一節將給大家介紹環境搭建。RocketMQ中最基礎的就是NameServer,我們先來看看它是怎麼搭建的。 NameServer RocketMQ要求的環境是JDK8以上,我們先檢查一下環

原创 RocketMQ系列(一)基本概念

RocketMQ是阿里出品的一款開源的消息中間件,讓其聲名大噪的就是它的事務消息的功能。在企業中,消息中間件選擇使用RocketMQ的還是挺多的,這一系列的文章都是針對RocketMQ的,咱們先從RocketMQ的一些基本概念和環境的搭建開

原创 怎樣實現登錄?| Cookie or JWT

先問小夥伴們一個問題,登錄難嗎?“登錄有什麼難得?輸入用戶名和密碼,後臺檢索出來,校驗一下不就行了。”凡是這樣回答的小夥伴,你明顯就是產品思維,登錄看似簡單,用戶名和密碼,後臺校驗一下,完事了。但是,登錄這個過程涵蓋的知識點是非常多的,絕不

原创 ES7學習筆記(十二)高亮 和 搜索建議

ES當中大部分的內容都已經學習完了,今天呢算是對前面內容的查漏補缺,把ES中非常實用的功能整理一下,在以後的項目開發中,這些功能肯定是對你的項目加分的,我們來看看吧。 高亮 高亮在搜索功能中是十分重要的,我們希望搜索的內容在搜索結果中重點突

原创 ES7學習筆記(十一)與SpringBoot結合

在前面的章節中,我們把ES的基本功能都給大家介紹完了,從ES的搭建、創建索引、分詞器、到數據的查詢,大家發現,我們都是通過ES的API去進行調用,那麼,我們在項目當中怎麼去使用ES呢?這一節,我們就看看ES如何與我們的SpringBoot項

原创 ES7學習筆記(十)聚合查詢

聚合查詢,它是在搜索的結果上,提供的一些聚合數據信息的方法。比如:求和、最大值、平均數等。聚合查詢的類型有很多種,每一種類型都有它自己的目的和輸出。在ES中,也有很多種聚合查詢,下面我們看看聚合查詢的語法結構, "aggregations"

原创 ES7學習筆記(十三)GEO位置搜索

ES的基本內容介紹的已經差不多了,最後我們再來看看GEO位置搜索,現在大部分APP都有基於位置搜索的功能,比如:我們點外賣,可以按照離我們的距離進行排序,這樣可以節省我們的配送費和送餐的時間;還有找工作時,也可以按照離自己家的距離進行排序,

原创 ES[7.6.x]學習筆記(三)新建索引

與ES的交互方式 與es的交互方式採用http的請求方式,請求的格式如下: curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>' 是請求

原创 ES[7.6.x]學習筆記(二)ES的集羣原理 ## 發現

發現 發現是節點之間彼此發現,形成集羣的一個過程。這個過程發生的場景有很多,比如:你啓動了一個集羣節點,或者一個節點確認主節點已經掛掉了,或者一個新的主節點被選舉了。 咱們在配置集羣的時候在配置文件中配置了一個discovery.seed_

原创 ES[7.6.x]學習筆記(一)Elasticsearch的安裝與啓動

Elasticsearch是一個非常好用的搜索引擎,和Solr一樣,他們都是基於倒排索引的。今天我們就看一看Elasticsearch如何進行安裝。 下載和安裝 今天我們的目的是搭建一個有3個節點的Elasticsearch集羣,所以我們找

原创 MySQL中的幻讀,你真的理解嗎?

昨天接到阿里的電話面試,對方問了一個在MySQL當中,什麼是幻讀。當時一臉懵逼,憑着印象和對方胡扯了幾句。面試結束後,趕緊去查資料,才發現之前對幻讀的理解完全錯誤。下面,我們就聊聊幻讀。 要說幻讀,就要從MySQL的隔離級別說起。MySQL

原创 Spring中,多個service發生嵌套,事務是怎麼樣的?

前言 最近在項目中發現了一則報錯:“org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has be

原创 JAVA中鎖的解決方案

前言 在上一節中,我們給大家介紹了什麼是鎖,以及鎖的使用場景,我相信大家對鎖的定義,以及鎖的重要性都有了比較清晰的認識。在這一節中,我們會給大家繼續做深入的介紹,介紹JAVA爲我們提供的不同種類的鎖。 JAVA爲我們提供了種類豐富的鎖,每種

原创 數據庫分庫分表的演進

背景 在互聯網初創時期,企業往往採用單體架構去搭建自己的應用系統,但是,隨着企業的不斷壯大,系統訪問量不斷隨之上升,數據量也急劇增長。數據的存儲是首先要解決的問題,在這個大數據時代,數據就是企業的命根子,數據庫的單體架構很難滿足數據的存儲,

原创 Spring還可以這樣用緩存,你知道嗎?

大家在項目開發過程中,或多或少都用過緩存,爲了減少數據庫的壓力,把數據放在緩存當中,當訪問的請求過來時,直接從緩存讀取。緩存一般都是基於內存的,讀取速度比較快,市面上比較常見的緩存有:memcache、redis、mongodb、guava