原创 RocketMQ源碼分析之路由

RocketMQ源碼分析我們主要從NameSrv、路由、生產者、消費者、消息存儲等方面一點點分析,本章主要講的是路由相關的源碼分析。 一、路由元信息 NameSrv中存儲了topic的路由信息,這樣跟生產者、消費者交互的時候,爲兩者提供t

原创 RocketMQ源碼分析之生產者

RocketMQ源碼分析我們主要從NameSrv、路由、生產者、消費者、消息存儲等方面一點點分析,本章主要講的是生產者的源碼分析。 生產者方面的源碼主要分爲三個地方,啓動生產者、發送消息、批量發送消息,然後每個地方又會細分爲不同的小步驟,

原创 分佈式事務以及解決方案

一、何爲分佈式事務 當使用分佈式服務或者微服務的時候,各個重要的功能模塊被分成不同的服務,不同的服務可能寫不同的DB。 例:若就按照最經典的銀行轉賬來說,若A向B轉賬,A扣除錢,B增加錢,扣錢和增加錢屬於不同的服務。 A若先扣完錢,然後通

原创 併發編程相關知識點

多線程並不一定比單線程處理的效率高,開啓過多的線程,會增加上下文切換的開銷,降低了效率。 一、如何降低上下文切換的開銷:無鎖併發編程、CAS算法、使用最少線程、使用協程        無鎖併發編程:多線程競爭鎖會產生額外的上下文切換開銷,

原创 RocketMQ源碼分析之消費者

RocketMQ源碼分析我們主要從NameSrv、路由、生產者、消費者、消息存儲等方面一點點分析,本章主要講的是消費者的源碼分析。 一、前提 消費者消費分爲兩種模式,集羣模式和廣播模式,默認開啓的是集羣模式,集羣模式下同一個消費組中只能有

原创 Linux下搭建RocketMQ4.5.2集羣並設置開機自啓

一、環境說明         CentOS7;RocketMQ4.5.2;防火牆關閉;虛擬機地址:192.168.0.40,192.168.0.41,192.168.0.42,192.168.0.75; 因爲之前該虛擬機上搭建了其他的東西

原创 SpringBoot集成RocketMQ4.5

       前面已經搭建起來了兩主兩從異步刷盤、同步複製的集羣了,感興趣的同學可以通過傳送門查看:Linux下搭建RocketMQ4.5.2集羣,現在講講在SpringBoot中集成RocketMQ。 一、環境說明 開發工具用的是IDE

原创 RocketMQ源碼分析之NameSrv

RocketMQ源碼分析我們主要從NameSrv、路由、生產者、消費者、消息存儲等方面一點點分析,本章主要講的是NameSrv的源碼分析。 NameSrv的啓動類:org.apache.rocketmq.namesrv.NamesrvSt

原创 Jenkins構建maven項目:無法找到非maven倉庫的jar包

        工作中使用jenkins構建maven項目時,會自動從遠程maven中央倉庫拉取pom.xml需要的jar包,但是有些jar包可能是自己本人集成的或者是maven中央倉庫找不到的,這個時候使用jenkins構建項目就會報錯

原创 使用Jenkins部署Spring Boot項目和war包項目

Jenkins是自動化部署的神器,今天就講講怎麼使用Jenkins部署SpringBoot項目。 一、環境說明 JDK1.8,MAVEN3.5,CentOS7,Jenkins:2.178 一、Linux下安裝JDK 1、登錄Oracle官

原创 JMeter測試EMQ集羣

Jmeter是一個由Apache基金會推出、基於Java的通用測試軟件,可以在圖形化界面中很方便地制定test plan然後執行它。 一、測試環境說明        我在Linux搭建了EMQ集羣,用兩臺機器搭建的,然後現在準備在那兩個機

原创 使用Docker部署war包項目

        使用Docker部署war,必須要用容器,我們就用tomcact容器,其實都是將war包丟到tomcat的webapps目錄下,tomcat啓動的情況下會自動解壓war包。        一種是在Docker中安裝tomc

原创 Sharding-JDBC和Mycat在分庫分表中的應用

一、背景介紹         Sharding-JDBC本來是噹噹網內部解決分庫分表的問題的一個內部組件,後來慢慢開源瞭然後現在捐給了Apache,成爲了Apache的一個子項目,但是噹噹自己還在維護自己的。除了Shrading-JDBC

原创 雪花算法以及具體實現

一、爲何要用雪花算法     1、問題產生的背景         現如今越來越多的公司都在用分佈式、微服務,那麼對應的就會針對不同的服務進行數據庫拆分,然後當數據量上來的時候也會進行分表,那麼隨之而來的就是分表以後id的問題。      

原创 Activiti工作流的入門使用

一、Activiti基本概念 流程定義:就是流程圖(bpmn文件) 流程實例:流程定義的每個具體實現 流程定義與流程實例的關係就像類和對象的關係,一個類可以有多個對象,一個流程定義可以有多個流程實例。 bpmn:流程圖,下圖就是一個bpm