RocketMQ雙主雙從同步集群部署

🎈 作者:互聯網-小啊宇

🎈 簡介: CSDN 運維領域創作者、阿里云專家博主。目前從事 Kubernetes運維相關工作,擅長Linux系統運維、開源監控軟件維護、Kubernetes容器技術、CI/CD持續集成、自動化運維、開源軟件部署維護等領域。
🎈 博客首頁:CSDN【互聯網-小阿宇】 、阿里云【互聯網-小阿宇】
🎈 歡迎小伙伴們點贊👍、收藏?、留言💬

在這里插入圖片描述

RocketMQ雙主雙從同步集群部署

  • 服務器環境:
  • 雙主雙從同步集群部署:
  • 一、安裝JDK環境
    • 1.1 上傳安裝包
    • 1.2 解壓安裝包
    • 1.3 編寫環境變量文件
    • 1.4 驗證JDK版本
  • 二、安裝RocketMQ
    • 1.1 解壓安裝包
    • 1.2 【192.168.8.16】修改配置文件
    • 1.3 【192.168.8.18】修改配置文件
    • 1.4 關鍵配置詳解:
    • 1.5 啟動兩臺服務器的nameServer
    • 1.6 分別啟動兩臺服務器的broker的節點
      • 1.6.1 【192.168.8.16】啟動a主節點、b從節點
      • 1.6.2 【192.168.8.18】啟動b主節點、a從節點
    • 1.7 啟動效果
    • 1.8 常用啟停命令:
  • 三、rocketmq-dashboard 控制臺部署
    • 1.1 下載安裝包到電腦主機編寫application.yml配置文件
    • 1.2 將rocketmq-dashboard-master打包
      • 1.2.1 如果主機有java環境、maven環境的直接進行打包就行
      • 1.2.2 linux安裝maven進行打包
    • 1.3 啟動rocketmq-dashboard 控制臺
    • 1.4 開啟鑒權登錄

服務器環境:

服務器IP操作系統備注
192.168.8.16Centos7.5JDK(1.8+)、RocketMQ(5.1.2)
192.168.8.18Centos7.5JDK(1.8+)、RocketMQ(5.1.2)

RocketMQ下載地址:https://rocketmq.apache.org/download/

雙主雙從同步集群部署:

服務器IPbroker名稱備注
192.168.8.16broker-aa主節點
192.168.8.16broker-b-sb從節點
192.168.8.18broker-bb主節點
192.168.8.18broker-a-sa從節點

創建安裝目錄并存放安裝包目錄

mkdir /domain

關閉防火墻、沙盒

systemctl stop firewalld  && systemctl disable firewalldvim /etc/selinux/config
#修改
ELINUX=disabled#重啟
reboot

一、安裝JDK環境


1.1 上傳安裝包

在這里插入圖片描述

1.2 解壓安裝包

[root@localhost ~]# tar -zxf  /domain/jdk-8u171-linux-x64.tar.gz -C /usr/local/
[root@localhost ~]# mv /usr/local/jdk1.8.0_171  /usr/local/java

1.3 編寫環境變量文件

[root@localhost ~]# vim /etc/profile
#尾部添加
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
[root@localhost ~]# source /etc/profile

1.4 驗證JDK版本

[root@localhost ~]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

二、安裝RocketMQ


1.1 解壓安裝包

 unzip /domain/rocketmq-all-5.1.2-bin-release.zip -d /domain/

1.2 【192.168.8.16】修改配置文件

  • 修改運行內存可編輯runserver.sh與runbroker.sh(需要的修改,不需要跳過
1、bin/runserver.shJAVA_OPT="${JAVA_OPT} -server -Xms520m -Xmx1g -Xmn128m -XX:metaspaceSize=120m -XX:MaxMetaspaceSize=320m"
2、bin/runnbroker.shJAVA_OPT="${JAVA_OPT} -server -Xms520m -Xmx1G -Xmn128m"
  • 創建rocketMQ存儲目錄
mkdir /domain/rocketMQ
  • 修改conf目錄中2m-2s-sync目錄中的配置文件
vim /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-a.properties
# 所屬集群名字
brokerClusterName=test
# broker名字,注意此處不同的配置文件填寫的不一樣(按配置文件文件名來匹配)
brokerName=broker-a
# 0 表示Master, > 0 表示slave
brokerId=0
# 注冊中心,可使用集群模式
namesrvAddr=192.168.8.16:9876;192.168.8.18:9876
# 在發送消息時,自動創建服務器不存在的Topic,默認創建的隊列數
defaultTopicQueueNums=4
# 是否允許Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
# 是否允許Broker自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
# Broker 對外服務的監聽端口
listenPort=10933
# 刪除文件時間點,默認是凌晨4點
deleteWhen=04
# 文件保留時間,默認48小時
fileReservedTime=120
# commitLog每個文件的大小默認1G
# 附加:消息實際存儲位置,和ConsumeQueue是mq的核心存儲概念,之前搭建2m環境的時候創建在store下面,用于數據存儲,consumequeue是一個邏輯的概念,消息過來之后,consumequeue并不是把消息所有保存起來,而是記錄一個數據的位置,記錄好之后再把消息存到commitlog文件里
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
# 檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
# 存儲路徑
storePathRootDir=/domain/rocketMQ/store
# commitLog存儲路徑
storePathCommitLog=/domain/rocketMQ/commitlog
# 消費隊列存儲路徑
storePathConsumeQueue=/domain/rocketMQ/consumequeue
# 消息索引存儲路徑
storePathIndex=/domain/rocketMQ/index
# checkpoint 文件存儲路徑
storeCheckpoint=/domain/rocketMQ/checkpoint
# abort 文件存儲路徑
abortFile=/domain/rocketMQ/abort
# 限制的消息大小
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
# Broker 的角色
# ASYNC_MASTER 異步復制Master
# SYNC_MASTER 同步雙寫Master
# SLAVE
brokerRole=SYNC_MASTER
# 刷盤方式
# ASYNC_FLUSH 異步刷盤
# SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
checkTransactionMessageEnable=false
# 發消息線程池數量
sendMessageTreadPoolNums=128
# 拉消息線程池數量
pullMessageTreadPoolNums=128
  • slave配置
cat /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-b-s.properties
# 所屬集群名字
brokerClusterName=test
# broker名字,注意此處不同的配置文件填寫的不一樣(按配置文件文件名來匹配)
brokerName=broker-b-s
# 0 表示Master, > 0 表示slave
brokerId=1
# 注冊中心,可使用集群模式
namesrvAddr=192.168.8.16:9876;192.168.8.18:9876
# 在發送消息時,自動創建服務器不存在的Topic,默認創建的隊列數
defaultTopicQueueNums=4
# 是否允許Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
# 是否允許Broker自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
# Broker 對外服務的監聽端口
listenPort=10900
# 刪除文件時間點,默認是凌晨4點
deleteWhen=04
# 文件保留時間,默認48小時
fileReservedTime=120
# commitLog每個文件的大小默認1G
# 附加:消息實際存儲位置,和ConsumeQueue是mq的核心存儲概念,之前搭建2m環境的時候創建在store下面,用于數據存儲,consumequeue是一個邏輯的概念,消息過來之后,consumequeue并不是把消息所有保存起來,而是記錄一個數據的位置,記錄好之后再把消息存到commitlog文件里
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
# 檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
# 存儲路徑
storePathRootDir=/domain/rocketMQ/slave/store
# commitLog存儲路徑
storePathCommitLog=/domain/rocketMQ/slave/commitlog
# 消費隊列存儲路徑
storePathConsumeQueue=/domain/rocketMQ/slave/consumequeue
# 消息索引存儲路徑
storePathIndex=/domain/rocketMQ/slave/index
# checkpoint 文件存儲路徑
storeCheckpoint=/domain/rocketMQ/slave/checkpoint
# abort 文件存儲路徑
abortFile=/domain/rocketMQ/slave/abort
# 限制的消息大小
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
# Broker 的角色
# ASYNC_MASTER 異步復制Master
# SYNC_MASTER 同步雙寫Master
# SLAVE
brokerRole=SLAVE
# 刷盤方式
# ASYNC_FLUSH 異步刷盤
# SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
checkTransactionMessageEnable=false
# 發消息線程池數量
sendMessageTreadPoolNums=128
# 拉消息線程池數量
pullMessageTreadPoolNums=128

1.3 【192.168.8.18】修改配置文件

與192.168.8.16的區別在于修改的文件名不同,我把詳細配置一樣放在下面

  • 修改運行內存可編輯runserver.sh與runbroker.sh(需要的修改,不需要跳過
1、bin/runserver.shJAVA_OPT="${JAVA_OPT} -server -Xms520m -Xmx1g -Xmn128m -XX:metaspaceSize=120m -XX:MaxMetaspaceSize=320m"
2、bin/runnbroker.shJAVA_OPT="${JAVA_OPT} -server -Xms520m -Xmx1G -Xmn128m"
  • 創建rocketMQ存儲目錄
mkdir /domain/rocketMQ
  • 修改conf目錄中2m-2s-sync目錄中的配置文件
vim /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-b.properties
# 所屬集群名字
brokerClusterName=test
# broker名字,注意此處不同的配置文件填寫的不一樣(按配置文件文件名來匹配)
brokerName=broker-b
# 0 表示Master, > 0 表示slave
brokerId=0
# 注冊中心,可使用集群模式
namesrvAddr=192.168.8.16:9876;192.168.8.18:9876
# 在發送消息時,自動創建服務器不存在的Topic,默認創建的隊列數
defaultTopicQueueNums=4
# 是否允許Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
# 是否允許Broker自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
# Broker 對外服務的監聽端口
listenPort=10933
# 刪除文件時間點,默認是凌晨4點
deleteWhen=04
# 文件保留時間,默認48小時
fileReservedTime=120
# commitLog每個文件的大小默認1G
# 附加:消息實際存儲位置,和ConsumeQueue是mq的核心存儲概念,之前搭建2m環境的時候創建在store下面,用于數據存儲,consumequeue是一個邏輯的概念,消息過來之后,consumequeue并不是把消息所有保存起來,而是記錄一個數據的位置,記錄好之后再把消息存到commitlog文件里
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
# 檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
# 存儲路徑
storePathRootDir=/domain/rocketMQ/store
# commitLog存儲路徑
storePathCommitLog=/domain/rocketMQ/commitlog
# 消費隊列存儲路徑
storePathConsumeQueue=/domain/rocketMQ/consumequeue
# 消息索引存儲路徑
storePathIndex=/domain/rocketMQ/index
# checkpoint 文件存儲路徑
storeCheckpoint=/domain/rocketMQ/checkpoint
# abort 文件存儲路徑
abortFile=/domain/rocketMQ/abort
# 限制的消息大小
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
# Broker 的角色
# ASYNC_MASTER 異步復制Master
# SYNC_MASTER 同步雙寫Master
# SLAVE
brokerRole=SYNC_MASTER
# 刷盤方式
# ASYNC_FLUSH 異步刷盤
# SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
checkTransactionMessageEnable=false
# 發消息線程池數量
sendMessageTreadPoolNums=128
# 拉消息線程池數量
pullMessageTreadPoolNums=128
  • slave配置
cat /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-a-s.properties
# 所屬集群名字
brokerClusterName=test
# broker名字,注意此處不同的配置文件填寫的不一樣(按配置文件文件名來匹配)
brokerName=broker-a-s
# 0 表示Master, > 0 表示slave
brokerId=1
# 注冊中心,可使用集群模式
namesrvAddr=192.168.8.16:9876;192.168.8.18:9876
# 在發送消息時,自動創建服務器不存在的Topic,默認創建的隊列數
defaultTopicQueueNums=4
# 是否允許Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
# 是否允許Broker自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
# Broker 對外服務的監聽端口
listenPort=10900
# 刪除文件時間點,默認是凌晨4點
deleteWhen=04
# 文件保留時間,默認48小時
fileReservedTime=120
# commitLog每個文件的大小默認1G
# 附加:消息實際存儲位置,和ConsumeQueue是mq的核心存儲概念,之前搭建2m環境的時候創建在store下面,用于數據存儲,consumequeue是一個邏輯的概念,消息過來之后,consumequeue并不是把消息所有保存起來,而是記錄一個數據的位置,記錄好之后再把消息存到commitlog文件里
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
# 檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
# 存儲路徑
storePathRootDir=/domain/rocketMQ/slave/store
# commitLog存儲路徑
storePathCommitLog=/domain/rocketMQ/slave/commitlog
# 消費隊列存儲路徑
storePathConsumeQueue=/domain/rocketMQ/slave/consumequeue
# 消息索引存儲路徑
storePathIndex=/domain/rocketMQ/slave/index
# checkpoint 文件存儲路徑
storeCheckpoint=/domain/rocketMQ/slave/checkpoint
# abort 文件存儲路徑
abortFile=/domain/rocketMQ/slave/abort
# 限制的消息大小
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
# Broker 的角色
# ASYNC_MASTER 異步復制Master
# SYNC_MASTER 同步雙寫Master
# SLAVE
brokerRole=SLAVE
# 刷盤方式
# ASYNC_FLUSH 異步刷盤
# SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
checkTransactionMessageEnable=false
# 發消息線程池數量
sendMessageTreadPoolNums=128
# 拉消息線程池數量
pullMessageTreadPoolNums=128

1.4 關鍵配置詳解:

brokerClusterName:只要是同一個集群里面的節點,都必須是這一個名稱,可以自定義
brokerName:broker的名稱,同一個broker的主從節點名稱保持一致。
brokerId:broker的id標識。0:主節點,大于0都是從節點
namesrvAddr:nameSrv的注冊中心地址,可以是集群模式,多個ip之間使用英文的;分隔
listenPort:監聽端口,同一個ip地址下,端口不能保持一致,需修改
brokerRole:broker的角色,ASYNC_MASTER 異步復制Master,SYNC_MASTER 同步雙寫Master,SLAVE從節點專用。
flushDiskType:數據刷盤方式。ASYNC_FLUSH 異步刷盤,SYNC_FLUSH 同步刷盤
storePathRootDir=/usr/local/rocketMQ/store 存儲路徑
storePathCommitLog=/usr/local/rocketMQ/commitlog commitLog存儲路徑
storePathConsumeQueue=/usr/local/rocketMQ/consumequeue 消費隊列存儲路徑
storePathIndex=/usr/local/rocketMQ/index消息索引存儲路徑
storeCheckpoint=/usr/local/rocketMQ/checkpoint checkpoint 文件存儲路徑
abortFile=/usr/local/rocketMQ/abort abort 文件存儲路徑

1.5 啟動兩臺服務器的nameServer

cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqnamesrv -> namesrc.log  2>&1 &

1.6 分別啟動兩臺服務器的broker的節點

1.6.1 【192.168.8.16】啟動a主節點、b從節點

#a主節點
cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqbroker -c /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-a.properties -> broker-a.log  2>&1 &
#b從節點
cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqbroker -c /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-b-s.properties -> broker-b-s.log  2>&1 &

1.6.2 【192.168.8.18】啟動b主節點、a從節點

#b主節點
cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqbroker -c /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-b.properties -> broker-b.log  2>&1 &
#a從節點
cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqbroker -c /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-a-s.properties -> broker-a-s.log  2>&1 &

1.7 啟動效果

兩臺都一樣
在這里插入圖片描述

1.8 常用啟停命令:

sh mqshutdown broker  停止brokersh mqshutdown namesrv 停止namesrv

三、rocketmq-dashboard 控制臺部署


在這里插入圖片描述

下載地址:
https://github.com/apache/rocketmq-dashboard

1.1 下載安裝包到電腦主機編寫application.yml配置文件

文件位置:rocketmq-dashboard-master\src\main\resources\application.yml

右鍵使用記事本打開
在這里插入圖片描述
修改以下內容為節點IP

    namesrvAddrs:- 192.168.8.16:9876- 192.168.8.18:9876

在這里插入圖片描述
編輯完成后保存退出!

1.2 將rocketmq-dashboard-master打包

1.2.1 如果主機有java環境、maven環境的直接進行打包就行

在pom.xml同級目錄操作命令

mvn clean package -Dmaven.test.skip=true

如果報錯,根據報錯原因進行解決:

  • 有可能是maven的版本過低,進行升級即可
  • 有可能用的自己的maven配置,部分依賴無法下載,通過指定項目本身pom.xml
mvn clean package -Dmaven.test.skip=true -f C:\Desktop\rocketmq-dashboard-master\rocketmq-dashboard-master\pom.xml

打包成功后將jar包上傳到服務器

1.2.2 linux安裝maven進行打包

Maven工具安裝:http://t.csdn.cn/IIZVH
將修改過application.yml配置的目錄上傳到服務器

[root@localhost rocketmq-dashboard-master]# pwd
/root/rocketmq-dashboard-master/rocketmq-dashboard-master
[root@localhost rocketmq-dashboard-master]# ls
docs  frontend  LICENSE  NOTICE  package-lock.json  pom.xml  README.md  src  style  target

maven打包

mvn clean package -Dmaven.test.skip=true -f pom.xml

成功界面:
在這里插入圖片描述
如果有報錯可能是因為maven版本太低,通過yum -y install maven安裝版本為Apache Maven 3.0.5,版本太低導致報錯,進行升級即可

1.3 啟動rocketmq-dashboard 控制臺

cd /root/rocketmq-dashboard-master/rocketmq-dashboard-master/target
nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar -> dashboard.log  2>&1 &

查看日志成功啟動:
在這里插入圖片描述
關閉防火墻

方式一:建議測試環境
1、關閉防火墻。
systemctl stop firewalld
方式二:生產環境使用
1、開放指定的端口號:firewall-cmd --zone=public --add-port=8080/tcp --permanent
2、重啟防火墻:firewall-cmd --reload
注意:使用方式二,就需要將nameServer 與 broker 的端口也需要開放出來。使用了那個端口就必須開放出來,否則會被防火墻給阻擋。

訪問rocketmq-dashboard 控制臺
訪問http://ip:8080
在這里插入圖片描述
在這里插入圖片描述

1.4 開啟鑒權登錄

對resource下的application.yml文件進行編輯
在這里插入圖片描述
對resource下的user.properties修改

用戶名=密碼,角色:1、管理員 2、普通用戶
在這里插入圖片描述

重新打包

cd <pom.xml同級目錄>
mvn clean package -Dmaven.test.skip=true -f pom.xml

在這里插入圖片描述
運行rocketmq-dashboard 控制臺

cd /root/rocketmq-dashboard-master/rocketmq-dashboard-master/target

訪問rocketmq-dashboard 控制臺
訪問http://ip:8080
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39742.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39742.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39742.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學習筆記十九:Pod常見的狀態和重啟策略

Pod常見的狀態和重啟策略 常見的pod狀態第一階段&#xff1a;第二階段&#xff1a;擴展&#xff1a; pod重啟策略測試Always重啟策略正常停止容器內的tomcat服務非正常停止容器里的tomcat服務 測試never重啟策略正常停止容器里的tomcat服務非正常停止容器里的tomcat服務 測試On…

Mac安裝opencv后無法導入cv2的解決方法

前提條件&#xff1a;以下兩個插件安裝成功 pip install opencv-python pip install --user opencv-contrib-python 注&#xff1a;直接用pip install opencv-contrib-python如果報錯&#xff0c;就加上“–user" 第一步&#xff1a; 設置–添加python解釋器 第二步&am…

go語言惡意代碼檢測系統--對接前端可視化與算法檢測部分

Malware Detect System 1 產品介紹 惡意代碼檢測系統。 2 產品描述 2.1 產品功能 功能點詳細描述注冊賬號未注冊用戶注冊成為產品用戶&#xff0c;從而具備享有產品各項服務的資格登錄賬號用戶登錄產品&#xff0c;獲得產品提供的各項服務上傳惡意樣本用戶可以將上傳自己的…

uniapp微信小程序消息訂閱快速上手

一、微信公眾平臺小程序開通消息訂閱并設置模板 這邊的模板id和詳細內容后續前后端需要使用 二、uniapp前端 需要是一個button觸發 js&#xff1a; wx.getSetting({success(res){console.log(res)if(res.authSetting[scope.subscribeMessage]){// 業務邏輯}else{uni.request…

智安網絡|深入比較:Sass系統與源碼系統的差異及選擇指南

隨著前端開發的快速發展&#xff0c;開發人員需要使用更高效和靈活的工具來處理樣式表。在這個領域&#xff0c;Sass系統和源碼系統是兩個備受關注的選項。 Sass系統 Sass&#xff08;Syntactically Awesome Style Sheets&#xff09;是一種CSS預處理器&#xff0c;它擴展了CS…

CSS常見單位匯總

像素&#xff08;px&#xff09;&#xff1a; 絕對單位&#xff0c;以屏幕上的實際像素為基準&#xff0c;最常用于具體的尺寸和位置表示。 百分比&#xff08;%&#xff09;&#xff1a; 相對單位&#xff0c;基于父元素的屬性計算大小&#xff0c;如寬度、高度、邊距等。 自適…

@Param詳解

文章目錄 背景什么是ParamParam的使用方法使用方法&#xff1a;遇到的問題及因Param解決了什么問題使用與不使用對比 Param是如何進行映射的總結 背景 最近在開發過程中&#xff0c;在寫mapper接口是在參數前加了Param注解&#xff0c;但是在運行的時候就會報錯&#xff0c;說…

關于游戲盾

游戲盾&#xff08;Game Shield&#xff09;是一種針對游戲行業特點的網絡安全解決方案&#xff0c;主要針對游戲平臺面臨的各種網絡攻擊和安全威脅。以下是一些原因&#xff0c;說明為什么游戲平臺需要加游戲盾&#xff1a; 1. DDoS攻擊&#xff1a;游戲平臺通常容易受到分布式…

深入理解多態:面向對象編程中的靈活性與擴展性

文章目錄 代碼學習-多態什么是多態&#xff1f;多態在代碼中的體現多態的優勢 代碼學習-多態 什么是多態&#xff1f; 多態是面向對象編程中的重要概念之一&#xff0c;它指的是為不同的數據類型的實體提供統一的接口。簡而言之&#xff0c;就是同一個命令在不同的對象上會產…

更多openEuler鏡像加入AWS Marketplace!

自2023年7月openEuler 22.03 LTS SP1正式登陸AWS Marketplace后&#xff0c;openEuler社區一直持續于在AWS上提供更多版本。 目前&#xff0c;openEuler22.03 LTS SP1 ,SP2兩個版本及 x86 arm64兩種架構的四個鏡像均可通過AWS對外提供&#xff0c;且在亞太及歐洲15個Region開放…

wkhtmltopdf 與 .Net Core

wkhtmltopdf 是使用webkit引擎轉化為pdf的開源小插件. 其有.NET CORE版本的組件,DinkToPdf,但該控件對跨平臺支持有限。 故打算在Linux上安裝相關插件直接調用. 準備工作 虛擬機&#xff1a;Linux version 3.10.0-1160.el7.x86_64 wkhtmltox開發包&#xff1a;wkhtmltox_0.12…

Caused by: java.lang.ClassNotFoundException: net.sf.cglib.proxy.MethodProxy

1. 異常信息 2023-08-16 14:17:14.817 INFO 14304 [ restartedMain] io.seata.config.ConfigurationFactory : load Configuration:FileConfiguration$$EnhancerByCGLIB$$862af1eb 2023-08-16 14:17:15.006 ERROR 14304 [ restartedMain] g.springframework.boot.Sprin…

大數據Flink(六十):Flink 數據流和分層 API介紹

文章目錄 Flink 數據流和分層 API介紹 一、??????????????Flink 數據流

ZooKeeper的應用場景(命名服務、分布式協調通知)

3 命名服務 命名服務(NameService)也是分布式系統中比較常見的一類場景&#xff0c;在《Java網絡高級編程》一書中提到&#xff0c;命名服務是分布式系統最基本的公共服務之一。在分布式系統中&#xff0c;被命名的實體通常可以是集群中的機器、提供的服務地址或遠程對象等一這…

iOS申請證書(.p12)和描述文件(.mobileprovision)

打包app時&#xff0c;經常會用到ios證書&#xff0c;但很多人都苦于沒有蘋果電腦&#xff0c;即使有蘋果電腦的&#xff0c;也會覺得蘋果電腦操作也很麻煩&#xff0c;這里記錄一下&#xff0c;用香蕉云編&#xff0c;申請證書及描述文件的過程。 香蕉云編的地址&#xff1a;…

【C語言】每日一題(多數元素)

多數元素&#xff0c;鏈接奉上 方法 1.摩爾投票2.合理但錯誤的方法2.1暴力循環2.2排序求出中間元素中間元素 1.摩爾投票 先來簡單的介紹摩爾投票&#xff1a; 摩爾投票是一種用來解決絕對眾數問題的算法。 什么是絕對眾數呢&#xff1f; 在一個集合中&#xff0c;如果一個元素…

[國產MCU]-BL602開發實例-SPI與WS2812B驅動

SPI與WS2812B驅動 文章目錄 SPI與WS2812B驅動1、BL602的SPI介紹2、SPI驅動API介紹3、WS2812B介紹4、WS2812B的SPI驅動實現串行外設接口(Serial Peripheral Interface Bus,SPI)是一種用于短程通信的同步串行通信接口規范,設備之間使用全雙工模式通信,是一個主機和一個或多個…

每天一練:SpringBoot連接mq

目錄 每天一練:Springboot連接rabbitmq 每天一練:Springboot連接rabbitmq 目錄一、部署Rabbitmq&#xff1f;二、增加maven依賴三、連接RabbitMq四、發布和訂閱消息總結 一、部署Rabbitmq&#xff1f; 這里rabbitmq采用docker安裝部署。 拉取docker鏡像 [root192 ~]# docker…

【ChatGLM】ChatGLM-6B模型Win+4GB顯卡本地部署筆記

ChatGLM-6B是清華大學知識工程和數據挖掘小組發布的一個類似ChatGPT的開源對話機器人&#xff0c;由于該模型是經過約1T標識符的中英文訓練&#xff0c;且大部分都是中文&#xff0c;因此十分適合國內使用。 預期環境 本機電腦備注&#xff1a; Win10專業版 32G內存256固態系統…

ChatGPT 調教日記(二):程序員轉量化的背景知識

程序員如何學習量化金融 作為一個程序員學習量化金融&#xff08;quant&#xff09;是一個不錯的選擇。以下是一些建議&#xff1a; 學習金融基礎知識&#xff1a;了解金融市場、投資策略和金融產品。這將幫助你理解量化金融的背景和應用場景。 學習統計學和數學&#xff1a;…