原创 JVM系列---對象的創建,定位及訪問

Java對象創建底層原理 1.虛擬機遇到一條new指令時,首先檢查這個對應的類能否在常量池中定位到一個類的符號引用; 2.判斷這個類是否已經被加載,解析,初始化 3.爲這個新生對象在java堆中分配內存空間,其中分配內存空間的方式有兩種

原创 MySQL系列---explain解析

explain命令概述 工作中,MySQL會記錄執行時間比較久的SQL語句,找出這些SQL語句是第一步,重要的是查看SQL語句的執行計劃,對於MySQL執行計劃的獲取,可以通過explain方式來查看,這條命令的輸出結果能夠讓我們瞭解My

原创 MySQL系列---鎖的種類和概念

在mysql當中,關於innodb的鎖類型總共可以分爲四種,包含了行鎖和表鎖,分別是 基本鎖 - [ 共享鎖(Shared Locks:S鎖)和排它鎖(Exclusive Locks:X鎖)] 意向鎖 - [ intention lock

原创 MySQL系列---事務相關

什麼是事務: 什麼是事務?事務是作爲單個邏輯工作單元執行的一系列操作,通俗易懂的說就是一組原子性的 SQL 查詢。 事務的 ACID 屬性 原子性(Atomicity):作爲邏輯工作單元,一個事務裏的所有操作的執行,要麼全部成功,要麼全部

原创 MySQL系列---索引(上)

什麼是索引: 索引是一種特殊的文件(InnoDB數據表上的索引是表空間的一個組成部分),它們包含着對數據表裏所有記錄的引用指針。更通俗的說,索引就相當於目錄。當你在用新華字典時,幫你把目錄撕掉了,你查詢某個字開頭的成語只能從第一頁翻到第一

原创 RocketMQ系列---RocketMQ,ActiveMQ,RabbitMQ,Kafka對比

本文將從多個維度綜合對比Kafka、RabbitMQ、RocketMQ、ActiveMQ這4款當前最主流的MQ消息中間件產品,希望能爲您的下一次產品的架構設計和MQ消息中間件選型提供參考依據。 特點 RabbitMQ ActiveMQ K

原创 RocketMQ系列---常見問題

1.RocketMQ如何避免重複消費? RocketMQ本身不保證消息重複消費,如果業務有要求不能重複消費,需要在自身的業務處理,常見的操作有兩種; 接口冪等,消費端業務消息保持冪等性,例如redis的setNx()命令,當然要注意設置k

原创 RocketMQ系列---集羣模式架構分析

1.單master模式: 優點:本地開發測試,配置簡單,同步刷盤消息一條都不會丟失; 缺點:不可靠,如果宕機,會導致服務不可用; 2.主從(異步,同步雙寫)模式: 優點:同步雙寫消息不丟失,異步複製存在少量丟失,主節點宕機,從節點可以對外

原创 MySQL系列---數據庫引擎

MySQL 有多種存儲引擎,目前常用的是 MyISAM 和 InnoDB 這兩個引擎,下面對這兩個引擎做一個簡單的介紹。 MyISAM MyISAM 是 MySQL 5.5.5 之前的默認引擎,它支持 B-tree/FullText/R-

原创 MySQL系列---索引(中)

常見索引種類(應用層面): 1.主鍵索引:主鍵索引是唯一的,通常以表的ID設置爲主鍵索引,一個表只能有一個主鍵索引,這是他跟唯一索引的區別。 2.唯一索引:唯一索引主要用於業務上的唯一約束,他跟主鍵索引的區別是,一個表可以有多個唯一索引

原创 elasticsearch從入門到入門系列(四)---搜索高級使用

1.es索引的別名使用 在開發中,隨着業務需求的迭代,較⽼的業務邏輯就要⾯臨更新甚⾄是重構,⽽對於es來說,爲了 適應新的業務邏輯,可能就要對原有的索引做⼀些修改,⽐如對某些字段做調整,甚⾄是重建索 引。⽽做這些操作的時候,可能會對業務造

原创 RocketMQ系列---消息消費者及消費方式

1.消息消費 public class Consumer { public static void main(String[] args) throws InterruptedException, MQClientException

原创 RocketMQ系列---消息發送者及發送方式

RocketMQ發送三種類型消息:同步消息,異步消息和單向消息,其中前兩種是可靠,因爲會有發送是否成功的應答,而最後一種沒有應答,一般用於可靠性要求比較低的情況,例如日誌收集。 1.Produce端發送同步消息:這種使用比較普遍,比如重要

原创 RocketMQ系列---RocketMQ原理及架構

RocketMQ 核心組件圖 RocketMQ是開源的消息中間件,它主要由NameServer,Producer,Broker,Consumer四部分構成。   NameServer:NameServer主要負責Topic和路由信息的管

原创 RocketMQ系列---事務消息

簡單總結:通過保證“消息發送”與本地事務的原子性,而消息的訂閱則交由MQ本身的機制實現。 執行流程說明: Producer向borker發送消息; 服務端將消息持久化後,向發送方確認消息已經發送成功後,此事爲半消息。 發送方開始執行本地