文章目錄
- 1、安裝docker
- 1.1、安裝步驟
- 1.2、docker常用命令
- 2、安裝Nginx
- 3、Docker安裝Mysql
- 4、Docker安裝Redis
- 5、安裝Nacos
- 5.1、Nacos的作用
- 5.2、單體服務安裝
- 6、安裝RocketMQ服務
- 6.1 MQ的作用
- 6.2 RocketMQ的基礎服務架構
- 6.2、安裝RocketMQ服務
- 6.3、安裝dashboard面板服務
- 6.4、RocketMQ快速體驗
1、安裝docker
1.1、安裝步驟
- 卸載舊版本docker
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
- 安裝工具包
yum install -y yum-utils
- 設置鏡像倉庫
- 推薦使?國內阿?云的倉庫
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新yum軟件包索引
yum makecache fast
- 鏡像加速配置
登錄阿里云, 搜索進入容器鏡像服務,配置鏡像加速器,
修改daemon配置文件/etc/docker/daemon.json來使用加速器, 沒有daemon.json文件,就創建一個,將下方的https://xxxx.mirror.aliyuncs.com換成自己的加速器地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
- 安裝docker
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 檢查docker是否安裝成功
docker version
# 啟動docker服務
systemctl start docker
# 查看docker服務狀態
systemctl status docker
- 跑一個hello-world
docker run hello-world
1.2、docker常用命令
# 幫助命令
docker version # docker版本
docker info # docker系統信息
docker xxx --help #查看幫助
# 鏡像操作
docker images # docker image ls
docker search xxx # 搜索鏡像
docker pull xxx # 下載鏡像 docker image pull
docker inspect xxx # 查看鏡像信息
docker run -d --name myxxx -p 80:80 xxx # 啟動鏡像
docker ps # 查看鏡像執?情況
docker exec -it {container_id} /bin/bash
docker rmi 鏡像ID # 刪除鏡像
docker image rm -f $(docker image ls -q) #刪除所有鏡像
# 容器操作
docker ps
docker container ls -a #查詢所有容器
docker rm $(docker ps -aq) #刪除所有容器
2、安裝Nginx
# 搜索鏡像
docker search nginx
# 下載安裝
docker pull nginx
# 啟動鏡像
docker run -d --name mynginx -p 80:80 nginx
3、Docker安裝Mysql
dockerhub參考地址: https://hub.docker.com/_/mysql
需要特別注意的是,對于鏡像中需要持久化保存的?件,需要通過-v掛載到宿主機上,這樣這些?件才不會隨
著容器關閉?消失。
對于MySQL,需要將他的?志?件、數據?件和配置?件掛載到宿主機上
# 拉取鏡像
docker pull mysql:8
# 啟動mysql并配置?作?錄。將容器中的?作?錄掛載到本機,這樣這些數據?件才能持久化保存。
docker run -p 3306:3306 --name mysql8 -v /app/docker/mysql/log:/var/log/mysql -v /app/docker/mysql/data:/var/lib/mysql -v /app/docker/mysql/conf:/etc/mysql -v /app/docker/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root -d mysql:8
# MySQL默認只能在本機登錄,也就是只能從容器內登錄。需要調整權限,允許遠程訪問。
docker container ls #獲取容器ID
# 進?容器
docker exec -it e6b5762cb698 /bin/bash
# 在容器內登錄MySQL 。 不要輸密碼
mysql -u root
# 調整MySQL,允許遠程連接
mysql> use mysql;
mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
mysql> update user set host='%' where user='root';
mysql> ALTER user 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
mysql> flush privileges;
# 如果都正常執?,那么MySQL服務就可以?客戶端?具遠程登錄了
4、Docker安裝Redis
需要注意將Redis的配置?件和?志?件掛載到宿主機上。
docker pull redis:latest
# 將Redis的配置?件和數據?件掛載到宿主機上
docker run -p 6388:6379 --name redis -v /app/docker/redis/config:/etc/redis.conf -v /app/docker/redis/data:/app/redis -d redis redis-server /etc/redis.conf
# 如果正常執?,那么Redis的服務就可以?客戶端?具遠程登錄了。
5、安裝Nacos
5.1、Nacos的作用
- 服務注冊中心
- 配置中心
5.2、單體服務安裝
下載??: https://nacos.io/download/nacos-server/ 。 這次選擇下載2.2.0版本
安裝Nacos之前,需要注意?下。Nacos默認將元數據記錄到derby內存數據庫中,容易丟失。所以通常需要
將元數據改為存儲到MySQL中。
使?MySQL保存元數據,需要在MySQL中創建獨?的庫和表。相關表的初始化腳本記錄在nacos的
conf/mysql-schema.sql?件中。
接下來需要修改nacos的配置?件,主要調整以下部分:
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use spring.sql.init.platform replaced.
# spring.datasource.platform=mysql
spring.sql.init.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?
characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicod
e=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root
接下來就可以啟動了。單機模式啟動Nacos需要加上參數 -m standalone
bin/startup.sh -m standalone
如果啟動沒有問題,就可以訪問nacos??了。訪問地址:http://xxxxxxx:8848/nacos 。默認?戶名
和密碼都是nacos
在nacos中,有個命名空間的概念。通過命名空間可以在不同應?之間形成數據隔離。
6、安裝RocketMQ服務
6.1 MQ的作用
- 異步
- 解耦
- 削峰
6.2 RocketMQ的基礎服務架構
6.2、安裝RocketMQ服務
下載地址:https://rocketmq.apache.org/download/ 選擇5.2.0版本。下載 rocketmq-all-5.2.0-binrelease.zip 和 rocketmq-dashboard-master.zip 兩個組件。
rocketmq-all-5.2.0-bin-release.zip解壓后,可以直接啟動nameserver服務
cd /app/rocketmq_5.2.0
nohup bin/mqnamesrv &
啟動后,會在當前?錄?成?個nohup.out?志?件。觀察?志?件,有以下??關鍵?志,表示服務啟動成功。
The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876
接下來啟動broker服務。啟動之前建議對配置?件做?些調整。vi conf/broker.conf,增加下?內容。主要是
對存儲?件進?規劃,便于后續掌握服務運?情況。
#允許?動創建topic ?于測試
autoCreateTopicEnable=true
#存儲路徑
storePathRootDir=/app/rocketmq/store
storePathCommitLog=/app/rocketmq/store/commitlog
sstorePathConsumeQueue=/app/rocketmq/store/consumequeue
storePathIndex=/app/rocketmq/store/index
storeCheckpoint=/app/rocketmq/store/checkpoint
abortFile=/app/rocketmq/store/abort
然后,需要配置?個環境變量,指向name server服務地址
vi ~/.bash_profile
# 增加下?配置項
# export NAMESRV_ADDR=192.168.65.210:9876
# 增加完成后,讓配置?件?效
source ~/.bash_profile
啟動broker服務
cd /app/rocketmq_5.2.0
nohup bin/mqbroker -c conf/broker.conf &
# 啟動成功的關鍵?志
# The broker[broker-a, 192.168.65.210:10911] boot success. serializeType=JSON and name
server is 192.168.65.210:9876
6.3、安裝dashboard面板服務
RocketMQ提供了?個基于Web的管理服務Dashboard,可以基于瀏覽器快速監控并管理RocketMQ服務。
rocketmq-dashboard-master.zip包中,只包含了Dashboard服務的源碼,并沒有直接提供編譯后的jar包。
mvn clean package -Dmaven.test.skip=true
編譯完成后,在源碼的target?錄下可以獲得可運?的jar包rocketmq-dashboard-1.0.1-SNAPSHOT.jar。
接下來把jar包上傳到服務器上,并在jar包同?錄下創建?個?件application.yml,配置dashboard服務指向的
nameserver服務地址
rocketmq:
config:
namesrvAddrs:
- 192.168.65.210:9876
到此就可以啟動dashboard服務了
nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar &
如果nohup.out中沒有報錯信息,那么就可以訪問dashboard的管理??。
在集群中可以看到當前服務狀況。
6.4、RocketMQ快速體驗
RocketMQ內置了測試案例,可以快速體驗RocketMQ的收發消息功能。
cd /app/rocketmq_5.2.0
# 發送消息
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 接受消息
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
很顯然,tools.sh實際上是提供了?個RocketMQ客戶端的運?環境,然后去執?對應的java類。如果想要了解
在Java應?中如何往RocketMQ收發消息,可以去查看下對應的測試類