写点什么

如何搭建 SpringcloudAlibaba 基础环境(一)

发布于: 5 小时前

本文详解如何搭建 SpringcloudAlibaba 基础环境:Mysql、Nacos、Sentinal、RocketMQ

整体概况

本系列文章主要是详解搭建 SpringcloudAlibaba 的一系列环境。主要包括 2 部分:基础环境准备、项目搭建。


基础环境主要包括:Mysql、Nacos、Sentinal、RocketMQ、Docker。


项目搭建包括 3 个服务:网关、订单服务、商品服务、营销服务。


本篇主要详解第一部分:基础环境准备。

基础环境

基础环境准备:Docker、Mysql、Nacos、Sentinal、RocketMQ


大部分组件直接使用 docker 安装,方便快捷。如果有对 docker 的不了解的,需要提前准备下。本文不做详解。

安装 Docker

Docker 的安装此处不多赘述,笔者使用的是 Mac,直接在 Docker 官网下载安装即可。

Docker 部署 Mysql、Nacos、Sentinal

考虑到 3 个组件单独用 docker 部署比较麻烦,所以此处笔者直接利用 docker-compose,将 3 个部件合并部署。


nacos:1.3.2


sentinal:1.8


mysql:5.7


1、在某个文件夹下编写名为docker-compose.yaml的 yaml 文件,安装 Mysql、安装 Nacos、安装 Sentinal


version: "3"services:  mysql:    container_name: mysql    image: mysql:5.7    environment:      - MYSQL_ROOT_PASSWORD=123456    volumes:      - /Users/yclxiao/Program/volume/mysql/data:/var/lib/mysql    ports:      - "3306:3306"    restart: always
nacos: image: nacos/nacos-server:1.3.2 container_name: nacos environment: - PREFER_HOST_MODE=hostname - MODE=standalone - MYSQL_DATABASE_NUM=1 - MYSQL_SERVICE_HOST=127.0.0.1 - MYSQL_SERVICE_DB_NAME=nacos_config - MYSQL_SERVICE_PORT=3306 - MYSQL_SERVICE_USER=root - MYSQL_SERVICE_PASSWORD=123456 volumes: - /Users/yclxiao/logs/nacos:/home/nacos/logs ports: - "8848:8848" depends_on: - mysql restart: always
sentinel: image: bladex/sentinel-dashboard:latest container_name: sentinel ports: - "8858:8858" restart: always
复制代码


2、在 yaml 所在文件夹下运行docker-compose up -d即可。


3、docker ps -a查询容器


验证 Mysql、Nacos、Sentinal 部署结果

1、验证 Mysql:直接使用 DataGrip 连接本地 Mysql 服务器,用户名root,密码123456



2、验证 Nacos:http://localhost:8848/nacos/index.html,用户名nacos,密码nacos



3、验证 Sentinal:http://localhost:8858/#/dashboard,用户名sentinel,密码sentinel


安装 RocketMQ

之前尝试用 docker 安装 RocketMQ 多个版本一直没成功,要不就是成功之后页面无法打开,要不就是容器启动之后,Mac 机器直接 CPU 飙升,所以放弃了 docker 部署,直接采用原始方式安装,安装包的下载地址:https://archive.apache.org/dist/rocketmq/


RocketMQ:4.4.0


(一)安装 nameserver、broker


安装步骤:


1、建立自己的 rocketmq 安装目录


2、进入https://archive.apache.org/dist/rocketmq/下载安装包,选择 4.4.0


3、解压安装包


4、建立 rocketmq 的数据文件夹rocketmqdata


5、编辑./conf/broker.conf


​ 5.1、增加brokerIp1 = 127.0.0.1


​ 5.2、增加文件存储位置:


#存储路径storePathRootDir=/Users/yclxiao/Project/middleware/rocketmq/rocketmq-native/rocketmqdata/store#commitLog 存储路径storePathCommitLog=/Users/yclxiao/Project/middleware/rocketmq/rocketmq-native/rocketmqdata/store/commitlog#消费队列存储路径存储路径storePathConsumeQueue=/Users/yclxiao/Project/middleware/rocketmq/rocketmq-native/rocketmqdata/store/consumequeue#消息索引存储路径storePathIndex=/Users/yclxiao/Project/middleware/rocketmq/rocketmq-native/rocketmqdata/store/index#checkpoint 文件存储路径storeCheckpoint=/Users/yclxiao/Project/middleware/rocketmq/rocketmq-native/rocketmqdata/store/checkpoint#abort 文件存储路径abortFile=/Users/yclxiao/Project/middleware/rocketmq/rocketmq-native/rocketmqdata/store/abort
复制代码


​ 文件中的/Users/yclxiao/Project/middleware/rocketmq/rocketmq-native目录改成自己的目录地址


6、编写启动脚本,内容如下,文件名startrmq.sh,授予执行权限chmod +x startrmq.sh


#!/bin/shnohup sh ./rocketmq-all-4.4.0-bin-release/bin/mqnamesrv >mqnamesrv.log 2>&1 &sleep 5echo "namesrv started"nohup sh ./rocketmq-all-4.4.0-bin-release/bin/mqbroker -n localhost:9876 -c ./rocketmq-all-4.4.0-bin-release/conf/broker.conf >mqbroker.log 2>&1 &echo "broker starting"nohup java -jar -Drocketmq.config.namesrvAddr=localhost:9876 -Drocketmq.config.isVIPChannel=false -Drocketmq.config.dataPath=./rocketmqdata -Dserver.port=8180 ./rocketmq-dashboard-2.0.0.jar >dashboard.log 2>&1 &echo "dashboard starting"
复制代码


7、启动:


启动 namesrv:nohup sh ./rocketmq-all-4.4.0-bin-release/bin/mqnamesrv >mqnamesrv.log 2>&1 &


启动 broker:nohup sh ./rocketmq-all-4.4.0-bin-release/bin/mqbroker -n localhost:9876 -c ./rocketmq-all-4.4.0-bin-release/conf/broker.conf >mqbroker.log 2>&1 &


(二)安装 dashboard


由于 rocketmq-console 已经被 rocketmq-dashboard 取代了,所以直接安装 dashboard


1、拷贝项目:https://github.com/apache/rocketmq-dashboard


2、将项目打成 jar 包:mvn clean package -Dmaven.test.skip=true


3、将 jar 拷贝到外层目录


4、启动:nohup java -jar -Drocketmq.config.namesrvAddr=localhost:9876 -Drocketmq.config.isVIPChannel=false -Drocketmq.config.dataPath=./rocketmqdata -Dserver.port=8180 ./rocketmq-dashboard-2.0.0.jar >dashboard.log 2>&1 &


参考文件目录如下:



(三)rocketmq 一键启停


rocketmq 的启动涉及到 3 个部件,比较麻烦,所以制作了简易的 shell 脚本,方便启动。


启动脚本:


#!/bin/shnohup sh ./rocketmq-all-4.4.0-bin-release/bin/mqnamesrv >mqnamesrv.log 2>&1 &sleep 5echo "namesrv started"nohup sh ./rocketmq-all-4.4.0-bin-release/bin/mqbroker -n localhost:9876 -c ./rocketmq-all-4.4.0-bin-release/conf/broker.conf >mqbroker.log 2>&1 &echo "broker starting"nohup java -jar -Drocketmq.config.namesrvAddr=localhost:9876 -Drocketmq.config.isVIPChannel=false -Drocketmq.config.dataPath=./rocketmqdata -Dserver.port=8180 ./rocketmq-dashboard-2.0.0.jar >dashboard.log 2>&1 &echo "dashboard starting"
复制代码


停止脚本:


#!/bin/shsh ./rocketmq-all-4.4.0-bin-release/bin/mqshutdown namesrvsh ./rocketmq-all-4.4.0-bin-release/bin/mqshutdown broker
pid=`ps ax | grep rocketmq-dashboard | grep java | grep -v grep | awk '{print $1}'`if [ -z "$pid" ] ; then echo "No rocketmq-dashboard running." exit -1;fi
echo "The rocketmq-dashboard(${pid}) is running..."kill ${pid}echo "Send shutdown request to rocketmq-dashboard(${pid}) OK"
复制代码


一键启动:./startrmq.sh


一键停止:./stoprmq.sh


(四)验证 RocketMQ 部署结果


总结

总体来说,整个安装过程还算简单清晰,照着步骤安装肯定会成功,如果在安装过程中有啥疑问,也可与我交流,谢谢你的阅读,我们下期见。


个人联系方式如下:http://mangod.top/s/aboutme

发布于: 5 小时前阅读数: 9
用户头像

还未添加个人签名 2018.09.11 加入

码农、架构师、创业者,混迹IT领域10余年,始终保持对技术的追求和热爱,对美好生活的向往!

评论

发布
暂无评论
如何搭建SpringcloudAlibaba基础环境(一)