欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker安裝部署單機(jī)版Rocket及基礎(chǔ)講解

 更新時(shí)間:2022年07月26日 14:45:23   作者:kaico2018  
RocketMQ是阿里巴巴旗下一款開(kāi)源的MQ框架,經(jīng)歷過(guò)雙十一考研、Java編程語(yǔ)言實(shí)現(xiàn),有非常好完整生態(tài)系統(tǒng),這篇文章主要介紹了用Docker部署安裝單機(jī)版Rocket及基礎(chǔ)講解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值

前言

目前主流的MQ主要是Rocketmq、kafka、Rabbitmq,Rocketmq相比于Rabbitmq、kafka具有主要優(yōu)勢(shì)特性有:

  1. 支持事務(wù)消息(能夠解決分布式事務(wù)的問(wèn)題)
  2. 支持順序消息(底層已經(jīng)使用內(nèi)存隊(duì)列實(shí)現(xiàn))
  3. 支持consumer端tag過(guò)濾,減少不必要的網(wǎng)絡(luò)傳輸

Rocketmq就是對(duì)kafka實(shí)現(xiàn)的升級(jí)版本。

優(yōu)缺點(diǎn)

RocketMQ 優(yōu)點(diǎn)

  • 單機(jī)吞吐量:十萬(wàn)級(jí)
  • 可用性:非常高,分布式架構(gòu)
  • 消息可靠性:經(jīng)過(guò)參數(shù)優(yōu)化配置,消息可以做到 0 丟失
  • 功能支持:MQ 功能較為完善,還是分布式的,擴(kuò)展性好
  • 支持 10 億級(jí)別的消息堆積,不會(huì)因?yàn)槎逊e導(dǎo)致性能下降
  • 源碼是 Java,方便結(jié)合公司自己的業(yè)務(wù)進(jìn)行二次開(kāi)發(fā)
  • 天生為金融互聯(lián)網(wǎng)領(lǐng)域而生,對(duì)于可靠性要求很高的場(chǎng)景,尤其是電商里面的訂單扣款,以及業(yè)務(wù)削峰,在大量交易涌入時(shí),后端可能無(wú)法及時(shí)處理的情況
  • RoketMQ 在穩(wěn)定性上可能更值得信賴,這些業(yè)務(wù)場(chǎng)景在阿里雙11已經(jīng)經(jīng)歷了多次考驗(yàn)

RocketMQ 缺點(diǎn)

  • 支持的客戶端語(yǔ)言不多,目前僅支持 Java 及 C++,而且 C++ 還不成熟
  • 沒(méi)有在 MQ 核心中去實(shí)現(xiàn) JMS 等接口,有些系統(tǒng)要遷移需要修改大量代碼

常見(jiàn)名詞介紹

  • provider

消息生產(chǎn)者,位于用戶的進(jìn)程內(nèi),Producer通過(guò)NameServer獲取所有Broker的路由信息,根據(jù)負(fù)載均衡策略選擇將消息發(fā)到哪個(gè)Broker,然后調(diào)用Broker接口提交消息。

  • provider group

生產(chǎn)者組,簡(jiǎn)單來(lái)說(shuō)就是多個(gè)發(fā)送同一類(lèi)消息的生產(chǎn)者稱(chēng)之為一個(gè)生產(chǎn)者組。

  • consumer

消息消費(fèi)者,位于用戶進(jìn)程內(nèi)。Consumer通過(guò)NameServer獲取所有broker的路由信息后,向Broker發(fā)送Pull請(qǐng)求來(lái)獲取消息數(shù)據(jù)。Consumer可以以兩種模式啟動(dòng),廣播(Broadcast)和集群(Cluster),廣播模式下,一條消息會(huì)發(fā)送給所有Consumer,集群模式下消息只會(huì)發(fā)送給一個(gè)Consumer。

  • consumer group

消費(fèi)者組,和生產(chǎn)者類(lèi)似,消費(fèi)同一類(lèi)消息的多個(gè) Consumer 實(shí)例組成一個(gè)消費(fèi)者組。

  • Topic Topic

用于將消息按主題做劃分,Producer將消息發(fā)往指定的Topic,Consumer訂閱該Topic就可以收到這條消息。Topic跟發(fā)送方和消費(fèi)方都沒(méi)有強(qiáng)關(guān)聯(lián)關(guān)系,發(fā)送方可以同時(shí)往多個(gè)Topic投放消息,消費(fèi)方也可以訂閱多個(gè)Topic的消息。在RocketMQ中,Topic是一個(gè)上邏輯概念。消息存儲(chǔ)不會(huì)按Topic分開(kāi)。

  • Message

代表一條消息,使用MessageId唯一識(shí)別,用戶在發(fā)送時(shí)可以設(shè)置messageKey,便于之后查詢和跟蹤。一個(gè) Message 必須指定 Topic,相當(dāng)于寄信的地址。Message 還有一個(gè)可選的 Tag 設(shè)置,以便消費(fèi)端可以基于 Tag 進(jìn)行過(guò)濾消息。也可以添加額外的鍵值對(duì),例如你需要一個(gè)業(yè)務(wù) key 來(lái)查找 Broker 上的消息,方便在開(kāi)發(fā)過(guò)程中診斷問(wèn)題。

  • Tag 標(biāo)簽

可以被認(rèn)為是對(duì) Topic 進(jìn)一步細(xì)化。一般在相同業(yè)務(wù)模塊中通過(guò)引入標(biāo)簽來(lái)標(biāo)記不同用途的消息。

  • Broker Broker

是RocketMQ的核心模塊,負(fù)責(zé)接收并存儲(chǔ)消息,同時(shí)提供Push/Pull接口來(lái)將消息發(fā)送給Consumer。Consumer可選擇從Master或者Slave讀取數(shù)據(jù)。多個(gè)主/從組成Broker集群,集群內(nèi)的Master節(jié)點(diǎn)之間不做數(shù)據(jù)交互。Broker同時(shí)提供消息查詢的功能,可以通過(guò)MessageID和MessageKey來(lái)查詢消息。Borker會(huì)將自己的Topic配置信息實(shí)時(shí)同步到NameServer。

  • Queue Topic

Queue Topic和Queue是1對(duì)多的關(guān)系,一個(gè)Topic下可以包含多個(gè)Queue,主要用于負(fù)載均衡。發(fā)送消息時(shí),用戶只指定Topic,Producer會(huì)根據(jù)Topic的路由信息選擇具體發(fā)到哪個(gè)Queue上。Consumer訂閱消息時(shí),會(huì)根據(jù)負(fù)載均衡策略決定訂閱哪些Queue的消息。

  • Offset

是RocketMQ在存儲(chǔ)消息時(shí)會(huì)為每個(gè)Topic下的每個(gè)Queue生成一個(gè)消息的索引文件,每個(gè)Queue都對(duì)應(yīng)一個(gè)Offset記錄當(dāng)前Queue中消息條數(shù)。

  • NameServer

NameServer可以看作是RocketMQ的注冊(cè)中心,它管理兩部分?jǐn)?shù)據(jù):集群的Topic-Queue的路由配置;Broker的實(shí)時(shí)配置信息。其它模塊通過(guò)Nameserver提供的接口獲取最新的Topic配置和路由信息。

  • Producer/Consumer

通過(guò)查詢接口獲取Topic對(duì)應(yīng)的Broker的地址信息

  • Broker

注冊(cè)配置信息到NameServer, 實(shí)時(shí)更新Topic信息到NameServer

單機(jī)版安裝部署

這里用作學(xué)習(xí)使用,所以使用docker安裝,安裝速度快。

1、安裝啟動(dòng)nameserver服務(wù)

docker run -d -p 9876:9876 -v /opt/rocketmq/data/namesrv/logs:/root/logs -v /opt/rocketmq/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv

2、安裝啟動(dòng)broker服務(wù)

根據(jù)容器卷配置,在指定位置添加broker.conf內(nèi)容 /opt/rocketmq/conf/broker.conf 。(可以不需要)

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = docker宿主機(jī)IP

啟動(dòng)broker服務(wù)

docker run -d -p 10911:10911 -p 10909:10909 -v  /opt/rocketmq/data/broker/logs:/root/logs -v  /opt/rocketmq/rocketmq/data/broker/store:/root/store -v  /opt/rocketmq/conf/broker.conf:/opt/rocketmq/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq/conf/broker.conf

3、安裝啟動(dòng)控制臺(tái)

docker run -d -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=nameserIP:9876 -Drocketmq.config.isVIPChannel=false" -p 8080:8080 --name rmqconsole -t styletang/rocketmq-console-ng

集群部署

集群部署原理圖

broker主備

主:

備:同步主節(jié)點(diǎn)的數(shù)據(jù),當(dāng)主節(jié)點(diǎn)宕機(jī)之后,可以從被變?yōu)橹鞅WC高可用。

在rocketmq中分為多主多從實(shí)現(xiàn)對(duì)我們topic數(shù)據(jù)實(shí)現(xiàn)分片存儲(chǔ)。

四種集群部署方式

  • 單個(gè)Master節(jié)點(diǎn), 缺點(diǎn)就是如果宕機(jī)之后可能整個(gè)服務(wù)不可用;
  • 多個(gè)Master節(jié)點(diǎn),分?jǐn)偞娣盼覀兊南ⅲ秉c(diǎn):沒(méi)有Slave節(jié)點(diǎn),主的Master節(jié)點(diǎn)宕機(jī)之后消息數(shù)據(jù)可能會(huì)丟失的;
  • 多個(gè)Master和Slave節(jié)點(diǎn) 采用異步形式 效率非常高 數(shù)據(jù)可能短暫產(chǎn)生延遲(毫秒級(jí)別的)
  • 多個(gè)Master和Slave節(jié)點(diǎn) 采用同步形式, 效率比較低、數(shù)據(jù)不會(huì)產(chǎn)生延遲。

集群部署

集群的部署主要在于配置文件,nameserver部署好之后,多個(gè)broker的配置文件中配置同一個(gè)nameserver 集群的連接信息,broker集群就搭建好了。之后 Rocketmq-console 連接其中一個(gè)nameserver就可以了。

配置文件說(shuō)明:

#集群名稱(chēng),可以區(qū)分不同集群,不同的業(yè)務(wù)可以建多個(gè)集群,多個(gè)broker的配置文件中的該值必須一樣
brokerClusterName=kaico

# Broker 的名稱(chēng), Master 和Slave 通過(guò)使用相同的Broker 名稱(chēng)來(lái)表明相互關(guān)系,以說(shuō)明某個(gè)Slave 是哪個(gè)Master 的Slave 。
brokerName=broker-a
#  一個(gè)Master Barker 可以有多個(gè)Slave, 0 表示Master ,大于0 表示不同Slave 的ID 。
brokerId=0 

#與fileReservedTim巳參數(shù)呼應(yīng),表明在幾點(diǎn)做消息刪除動(dòng)作,默認(rèn)值04 表示凌晨4 點(diǎn)。
deleteWhen=04
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876
autoCreateTopicEnable=true  #是否自動(dòng)創(chuàng)建主題(true為允許自動(dòng)創(chuàng)建集群)
#topic默認(rèn)創(chuàng)建的隊(duì)列數(shù)
defaultTopicQueueNums=4
#是否允許Broker自動(dòng)創(chuàng)建訂閱組,建議線下開(kāi)啟,線上關(guān)閉,默認(rèn)【true】
autoCreateSubscriptionGroup=true
#Broker 監(jiān)聽(tīng)的端口號(hào),如果一臺(tái)機(jī)器上啟動(dòng)了多個(gè)Broker , 則要設(shè)置不同的端口號(hào),避免沖突。
listenPort=10911
brokerIp=192.168.1.1

1、首先啟動(dòng)兩個(gè)nameserver服務(wù)

2、啟動(dòng)多個(gè)broker服務(wù)(這里安排兩個(gè))

第一個(gè)broker配置文件

brokerClusterName=kaico  #集群名稱(chēng)
brokerName=broker-a     #broker的名稱(chēng)
brokerId=0              #master節(jié)點(diǎn)的標(biāo)識(shí)(0表示是master節(jié)點(diǎn))
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876   #nameServer集群

第二個(gè)broker配置文件

brokerClusterName=kaico  #集群名稱(chēng)
brokerName=broker-b     #broker的名稱(chēng)
brokerId=0              #master節(jié)點(diǎn)的標(biāo)識(shí)(0表示是master節(jié)點(diǎn))
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876   #nameServer集群

啟動(dòng)方式:

  1. 先啟動(dòng)nameServer服務(wù)
  2. 再去啟動(dòng)broker,在啟動(dòng)broker的命令中可以指定nameServer的連接信息。

到此這篇關(guān)于Docker安裝部署單機(jī)版Rocket及基礎(chǔ)講解的文章就介紹到這了,更多相關(guān)Docker Rocket內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker容器鏡像相關(guān)命令基本介紹與使用

    Docker容器鏡像相關(guān)命令基本介紹與使用

    這篇文章主要為大家介紹了Docker容器鏡像相關(guān)命令的基本介紹與使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 快速安裝openshift的步驟詳解

    快速安裝openshift的步驟詳解

    今天小編就為大家分享一篇關(guān)于快速安裝openshift的步驟詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 詳解Docker+Jenkins+Gitlab+Django應(yīng)用部署實(shí)踐

    詳解Docker+Jenkins+Gitlab+Django應(yīng)用部署實(shí)踐

    這篇文章主要介紹了Docker+Jenkins+Gitlab+Django應(yīng)用部署實(shí)踐,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 基于Docker部署GitLab環(huán)境搭建的方法步驟

    基于Docker部署GitLab環(huán)境搭建的方法步驟

    這篇文章主要介紹了基于Docker部署GitLab環(huán)境搭建的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 基于docker的caffe環(huán)境搭建方法

    基于docker的caffe環(huán)境搭建方法

    這篇文章主要介紹了基于docker的caffe環(huán)境搭建方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 詳解Docker數(shù)據(jù)管理(數(shù)據(jù)卷&數(shù)據(jù)卷容器)

    詳解Docker數(shù)據(jù)管理(數(shù)據(jù)卷&數(shù)據(jù)卷容器)

    容器中管理數(shù)據(jù)主要有兩種方式,這篇文章主要介紹了詳解Docker數(shù)據(jù)管理(數(shù)據(jù)卷&數(shù)據(jù)卷容器) ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • docker一鍵安裝wordpress的方法步驟

    docker一鍵安裝wordpress的方法步驟

    這篇文章主要介紹了docker一鍵安裝wordpress的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 完美解決Windows10下無(wú)法對(duì)docker容器進(jìn)行端口訪問(wèn)的操作

    完美解決Windows10下無(wú)法對(duì)docker容器進(jìn)行端口訪問(wèn)的操作

    這篇文章主要介紹了完美解決Windows10下無(wú)法對(duì)docker容器進(jìn)行端口訪問(wèn)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • docker容器存儲(chǔ)清理刪除所需命令和方法

    docker容器存儲(chǔ)清理刪除所需命令和方法

    這篇文章主要介紹了docker容器存儲(chǔ)清理所需命令和方法,我在用docker安裝的es使用過(guò)程中,發(fā)現(xiàn)內(nèi)存占滿了,我把全部的都刪除掉了,但有時(shí)候數(shù)據(jù)我們必須要使用,所以不能全刪,需要指定刪除,下面就是一些docker容器存儲(chǔ)清理所需的一些命令和方法,需要的朋友可以參考下
    2023-01-01
  • Docker 配置阿里云容器服務(wù)操作

    Docker 配置阿里云容器服務(wù)操作

    這篇文章主要介紹了Docker 配置阿里云容器服務(wù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11

最新評(píng)論