消息中間件--"rocketmq"01之環境搭建

来源:http://www.cnblogs.com/leihuazhe/archive/2017/10/18/7689298.html
-Advertisement-
Play Games

前置知識 ssh工具 連接linux工具 顏色設置, "參考" 中文亂碼, "參考" Linux相關知識 防火牆 的基本使用, "參考" 啟動: 查看狀態: 停止: 禁用: 配置firewalld cmd 查看版本: firewall cmd version 查看幫助: firewall cmd h ...


前置知識


ssh工具

連接linux工具SecureCRT


Linux相關知識

centos7 防火牆firewalld的基本使用,參考
  • 啟動: systemctl start firewalld
  • 查看狀態: systemctl status firewalld
  • 停止: systemctl disable firewalld
  • 禁用: systemctl stop firewalld

配置firewalld-cmd
  • 查看版本: firewall-cmd --version
  • 查看幫助: firewall-cmd --help
  • 顯示狀態: firewall-cmd --state
  • 查看所有打開的埠: firewall-cmd --zone=public --list-ports
  • 更新防火牆規則: firewall-cmd --reload
  • 查看區域信息: firewall-cmd --get-active-zones
  • 查看指定介面所屬區域: firewall-cmd --get-zone-of-interface=eth0
  • 拒絕所有包:firewall-cmd --panic-on
  • 取消拒絕狀態: firewall-cmd --panic-off
  • 查看是否拒絕: firewall-cmd --query-panic

開啟一個對外埠步驟
  • 先查看是否開啟,查看所有打開的埠: firewall-cmd --zone=public --list-ports
  • 添加:
    firewall-cmd --zone=public --add-port=80/tcp --permanent(--permanent永久生效,沒有此參數重啟後失效)
//命令含義:
–zone #作用域
–add-port=80/tcp #添加埠,格式為:埠/通訊協議
–permanent #永久生效,沒有此參數重啟後失效
  • 重新載入: firewall-cmd --reload
  • 查看是否開啟: firewall-cmd --zone=public --query-port=80/tcp
  • 刪除: firewall-cmd --zone= public --remove-port=80/tcp --permanent
伺服器環境(針對2m-noslave)
序號 IP 用戶名 密碼 角色 模式
1 192.168.100.24 root nameServer1,brokerServer1 Master1
2 192.168.100.25 root nameServer2,brokerServer2 Master2
Hosts添加信息

修改host,做集群的通訊(兩台機器都修改)

vim /etc/hosts

host.png

IP NAME
192.168.100.24 rocketmq-nameserver1
192.168.100.24 rocketmq-master1
192.168.100.25 rocketmq-nameserver2
192.168.100.25 rocketmq-master2

rocketmq安裝

雙master模式(雙namesrv雙broker)


上傳解壓

上傳

使用 rz sz插件,進行上傳下載

yum install -y lrzsz

上傳命令為rz,下載命令為sz

解壓安裝
tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local   //解壓到指定目錄下

mv alibaba-rocketmq alibaba-rocketmq-3.2.6 //重命名,帶版本號

ln -s alibaba-rocketmq-3.2.6 rocketmq  //創建軟鏈接、如果不加 -s 就是創建硬鏈接

創建存儲路徑

mkdir /usr/local/rocketmq/store

mkdir /usr/local/rocketmq/store/commitlog

mkdir /usr/local/rocketmq/store/consumequeue

mkdir /usr/local/rocketmq/store/index

修改RocketMQ配置文件

vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties

vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties

作為broker啟動時的參數配置文件

參考配置
#所屬集群名字
brokerClusterName=rocketmq-cluster

#broker名字,註意此處不同的配置文件填寫的不一樣
brokerName=broker-a|broker-b

#0 表示 Master,>0 表示 Slave
brokerId=0

#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#在發送消息時,自動創建伺服器不存在的topic,預設創建的隊列數
defaultTopicQueueNums=4

#是否允許 Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true

#是否允許 Broker 自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true

#Broker 對外服務的監聽埠
listenPort=10911

#刪除文件時間點,預設凌晨 4點
deleteWhen=04

#文件保留時間,預設 48 小時
fileReservedTime=120

#commitLog每個文件的大小預設1G
mapedFileSizeCommitLog=1073741824

#ConsumeQueue每個文件預設存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#檢測物理文件磁碟空間
diskMaxUsedSpaceRatio=88

#存儲路徑
storePathRootDir=/usr/local/rocketmq/store

#commitLog 存儲路徑
storePathCommitLog=/usr/local/rocketmq/store/commitlog

#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue

#消息索引存儲路徑
storePathIndex=/usr/local/rocketmq/store/index

#checkpoint 文件存儲路徑
storeCheckpoint=/usr/local/rocketmq/store/checkpoint

#abort 文件存儲路徑
abortFile=/usr/local/rocketmq/store/abort

#限制的消息大小
maxMessageSize=65536

#flushCommitLogLeastPages=4

flushConsumeQueueLeastPages=2

#flushCommitLogThoroughInterval=10000

#flushConsumeQueueThoroughInterval=60000

#Broker 的角色
#- ASYNC_MASTER 非同步複製Master
#- SYNC_MASTER 同步雙寫Master

#- SLAVE
brokerRole=ASYNC_MASTER

#刷盤方式
#- ASYNC_FLUSH 非同步刷盤
#- SYNC_FLUSH 同步刷盤

flushDiskType=ASYNC_FLUSH

#checkTransactionMessageEnable=false

#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量
#pullMessageThreadPoolNums=128

修改日誌配置文件


修改啟動腳本參數



上面兩步省略,直接上傳到linux解壓等即可

啟動服務namesrv


1.到bin目錄下

加入執行許可權 chmod +x *

2.修改啟動的堆記憶體初始大小
`vim runserver.sh` //更改記憶體設置
3.啟動
./mqnamesrv
4.後臺運行進程:
nohup ./mqnamesrv &
5.jps查看進程

查看是否成功: tail -f nohup.out


啟動服務broker(master)

1.修改啟動的堆記憶體初始大小

vim runbroker.sh //更改記憶體設置
2. 啟動
nohup sh mqbroker -n "192.168.1.107:9876"  &
3.指定配置文件的方式啟動
nohup sh mqbroker -n "192.168.1.107:9876" -c ../conf/2m-noslave/broker-a.properties > broker.out & 

nohup sh mqbroker -n "127.0.0.1:9876" -c ../conf/2m-noslave/broker-a.properties > broker.out  &

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
# 用這個,不要指定namesrv地址
4.使用./mqadmin來觀察namesrv和broker的情況
./mqadmin clusterList -n 192.168.1.107:9876 //ip為namesrv地址

查看是否成功啟動

netstat -ntlp
# jps
# tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
# tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

停止Rocketmq

cd /usr/local/rocketmq/bin

sh mqshutdown broker
sh mqshutdown namesrv

數據清理(停止後進行數據清理)

--等待停止

# rm -rf /usr/local/rocketmq/store
# mkdir /usr/local/rocketmq/store
# mkdir /usr/local/rocketmq/store/commitlog
# mkdir /usr/local/rocketmq/store/consumequeue
# mkdir /usr/local/rocketmq/store/index

--按照上面步驟重啟NameServer與BrokerServer
5.RocketMQ需要打開的防火請埠號 9876,10911,10912

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. JMS基本概念 JMS(Java Message Service) 即Java消息服務。它提供標準的產生、發送、接收消息的介面簡化企業應用的開發。 它支持兩種消息通信模型:點到點(point-to-point)(P2P)模型和發佈/訂閱(Pub/Sub)模型。 P2P 模型規定了一個消息只能有 ...
  • 之前沒課的時候寫過安居客的爬蟲,但那也是小打小鬧,那這次呢, 還是小打小鬧 哈哈,現在開始正式進行爬蟲書寫 首先,需要分析一下要爬取的網站的結構: 作為一名河南的學生,那就看看鄭州的二手房信息吧! 在上面這個頁面中,我們可以看到一條條的房源信息,從中我們發現了什麼,發現了連鄭州的二手房都是這麼的貴, ...
  • 在web.xml中配置載入spring時,發現項目無法運行;而去掉spring的配置時,項目可以被初始化。 此時應考慮到spring的配置文件中存在錯誤,以至於web容器無法對項目成功初始化,在web.xml中配置log4j, 根據列印的信息對spring的配置進行修改。 <context-para ...
  • 作者: 阿布 阿布量化版權所有 未經允許 禁止轉載 "abu量化系統github地址(歡迎+star,你的支持是我更新的動力!)" "本節ipython notebook" 上一節使用AbuFactorBuyBreak和AbuFactorSellBreak且混入基本止盈止損策略AbuFactorAt ...
  • 作者: 阿布 阿布量化版權所有 未經允許 禁止轉載 "abu量化系統github地址" (您的star是我的動力!) "本節ipython notebook" "本節界面操作教程視頻播放地址" 量化系統一般分為回測模塊、實盤模塊。 回測模塊:首先交易者編寫實現一個交易策略,它基於一段歷史的交易數據, ...
  • <settings/> settings的配置內容 <typeAliases/> 別名 表 系統定義的typeAliases 別名 映射的類型 _byte byte _long long _short short _int int _integer int _double double _float ...
  • 日誌的列印在軟體開發過程中必不可少,一般分為兩個大類: 操作日誌 系統日誌 操作日誌,主要針對的是用戶,例如在Photoshop軟體中會記錄自己操作的步驟,便於用戶自己查看。 系統日誌,主要針對的是軟體開發人員(包括測試、維護人員),也就是說這部分的日誌用戶是看不到的,也就是我們通常所說的debug ...
  • package com.swift; import com.rupeng.game.GameCore; public class BouncingBall implements Runnable { public static void main(String[] args) { GameCore.... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...