SpringCloud组件搭建
一、网桥搭建
本文使用Docker部署,因此需要搭建网桥,便于Docker容器之间的调用
- 输入下面命令网桥的创建
# --driver表示设置网络模式为bridge
# --subnet表示网段是192.168.178.0/255.255.255.0,如果24变为16表示255.255.0.0
# --gateway表示设置网关为192.168.178.1
# cloud_network表示自己创建的网络名
docker network create --driver bridge --subnet=192.168.178.0/24 --gateway=192.168.178.1 cloud_network
- 查看网桥是否创建成功
docker network ls
docker network inspect cloud_network
二、Nacos搭建
2.1 拉取Docker镜像
docker pull nacos/nacos-server:2.1.0
2.2 创建Nacos容器
2.2.1 不做MySQL持久化
- 不做持久化的话很简单,输入下面命令进行nacos容器创建即可
# 如果是Nacos1的话只需要开8848一个端口即可
# 如果是Nacos2的话需要再开9848和9849两个端口,否则应用无法注册到Nacos
docker run -itd --name my_nacos \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always
-e MODE=standalone
nacos/nacos-server:2.1.0
- 查看nacos是否启动成功
docker logs -f my_nacos
2.2.2 做MySQL持久化
2.2.2.1 操作MySQL容器
- 拉取Docker镜像
docker pull mysql:5.7
- 创建容器
# --name表示设置容器的名称
# --net表示设置容器所在的网桥
# --restart表示设置容器开机自启
# -p port1:post2 port1表示宿主机端口,也就是服务器对外提供的访问端口、post2表示容器内部端口
# -v表示地址映射
# -e表示设置MySQL密码
# mysql:5.7表示MySQL镜像名称和版本
docker run -itd --name cloud_mysql \
--net cloud_network \
--restart=always \
-p 3306:3306 \
-v /home/cloud/mysql/conf:/etc/mysql/conf.d \
-v /home/cloud/mysql/data:/var/lib/mysql \
-v /home/cloud/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
- 创建数据库
# 解压下载好的nacos-server-2.1.0.zip文件,将/nacos/conf/nacos-mysql.sql文件复制到容器中
docker cp nacos-mysql.sql cloud_mysql:/home/
# 进入MySQL容器
docker exec -it cloud_mysql /bin/bash
# 输入如下命令后,输入MySQL密码,进入容器内MySQL数据库
mysql -u root -p
# 创建nacos_config数据库
create database nacos_config charset=utf8;
# 使用nacos_config数据库
use nacos_config;
# 导入nacos_config数据库表
source /home/nacos-mysql.sql
2.2.2.2 操作Nacos容器
注意:2.2步必须先完成
2.2.2.2.1 创建容器
# MYSQL_SERVICE_HOST设置为MySQL容器名字即可(Docker内有DNS,尽量创建网桥)
# MYSQL_SERVICE_DB_NAME设置为2.2创建的数据库nacos_config
docker run -itd --name cloud_nacos \
--net cloud_network \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--env MODE=standalone \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=cloud_mysql \
--env MYSQL_SERVICE_PORT=3306 \
--env MYSQL_SERVICE_USER=root \
--env MYSQL_SERVICE_PASSWORD=123456 \
--env MYSQL_SERVICE_DB_NAME=nacos_config nacos:2.1.0
2.2.2.2.2 修改application.properties
-
如果容器内有vim的话,直接通过 vim /home/nacos/conf/application.properties修改
-
如果容器内没有vim的话,需要通过docker cp 先把application.properties复制到宿主机修改,修改完后在通过docker cp复制回容器内
-
修改的内容
...
spring.datasource.platform=mysql # 设置为mysql
...
db.num=1 # 设置为1
db.url.0=jdbc:mysql://cloud_mysql:3306/nacos_config? characterEncoding=utf8&connectTimeout=3000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true # 设置为同一个网桥内的MySQL容器名字cloud_mysql,端口号为cloud_mysql的端口号
db.user=root # mysql user名
db.password=123456 # mysql 密码
...
2.2.2.2.3 重启nacos容器
- 重启容器
docker restart cloud_nacos
- 查看容器是否启动成功
docker logs -f cloud_nacos
2.3 访问Nacos
"""
进入网址访问Nacos
http://localhost:8848/nacos
账号:nacos
密码:nacos
"""
三、Rocketmq
3.1 拉取Docker镜像
# rocketmq镜像
docker pull rocketmqinc/rocketmq
# rocketmq控制台镜像
docker pull pangliang/rocketmq-console-ng
3.2 创建数据目录
使用Rokcetmq建议创建数据目录,可以参考下面的目录进行创建
# Windows系统
E:/Volume/rocketmq/nameserver/logs
E:/Volume/rocketmq/nameserver/store
E:/Volume/rocketmq/conf
E:/Volume/rocketmq/data/broker/logs
E:/Volume/rocketmq/data/broker/store
# Linux系统
mkdir -p /docker/rocketmq/nameserver/logs /docker/rocketmq/nameserver/store /docker/rocketmq/conf /docker/rocketmq/data/broker/logs /docker/rocketmq/data/broker/store
3.3 创建NameServer容器
docker run -itd --name cloud_rocketmq_nameserver \
--net cloud_network \
--restart=always \
-p 9876:9876 \
-v E:/Volume/rocketmq/nameserver/logs:/root/logs \
-v E:/Volume/rocketmq/nameserver/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
rocketmq:latest \
sh mqnamesrc # 启动namesrv服务
3.4 创建Broker容器
- 编辑broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 127.0.0.1 # 主机的IP
- 创建容器
docker run -itd --name cloud_rocketmq_broker \
--net cloud_network \
--restart=always \
--link cloud_rocketmq_nameserver:namesrv \
-p 10911:10911 \
-p 10909:10909 \
-v E:/Volume/rocketmq/data/broker/logs:/root/logs \
-v E:/Volume/rocketmq/data/broker/store:/root/store \
-v E:/Volume/rocketmq/conf/broker.conf:/opt/docker/rocketmq/broker.conf \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
rocketmq:latest \
sh mqbroker -c /opt/docker/rocketmq/broker.conf
3.5 创建控制台容器
docker run -itd --name cloud_rocketmq_admin \
--net cloud_network \
--restart=always \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=localhost:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8080:8080 \
rocketmq-console-ng:latest
3.6 访问Rocketmq
"""
进入网址访问Rocketmq
http://localhost:8088/#
"""
四、Sentinel
4.1 拉取Docker镜像
docker pull bladex/sentinel-dashboard
4.2 创建sentinel容器
- 创建容器
docker run -itd --name cloud_sentinel \
--net cloud_network \
--restart=always \
-p 8858:8858 \
sentinel-dashboard:latest
- 查看sentinel容器是否启动成功
docker logs -f cloud_sentinel
4.3 访问Sentinel
"""
进入网址访问Sentinel
http://localhost:8858/#
账号:sentinel
密码:sentinel
"""
五、ElasticSearch相关软件
5.1 拉取Docker镜像
# 拉取elasticsearch镜像
docker pull elasticsearch:7.6.2
# 拉取elasticsearch-head镜像
docker pull mobz/elasticsearch-head:5
# 拉取kibana镜像
docker pull kibana:7.6.2
5.2 创建容器
5.2.1 创建
# 创建elasticsearch容器
docker run --itd --name cloud_elasticsearch \
--net cloud_network \
--restart=always \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m"
-e "discovery.type=signal-node"
-p 9200:9200
-p 9300:9300
elasticsearch:7.6.2
# 创建elasticsearch-head容器
docker run -itd --name cloud_elasticsearch_head \
--net cloud_network \
--restart=always \
-p 9100:9100 \
elasticsearch-head:5
# 创建kibana容器
docker run -itd --name cloud_kibana \
--net cloud_network \
--restart=always \
-e ELASTICSEARCH_HOSTS=http://cloud_elasticsearch:9200 \
-p 5601:5601 \
kibana:7.6.2
5.2.2 访问页面
5.2.2.1 elasticsearch
5.2.2.2 elasticsearch-head
5.2.2.3 kibana
5.3 其他问题解决
5.3.1 处理Elasticsearch-head跨域问题
- elasticsearch-head在连接elasticsearch时可能会出现跨域问题,通过如下方式解决
- 进入elasticsearch容器
docker exec -it elasticsearch /bin/bash
- 通过命令vi config/elasticsearch.yml修改配置文件
http.cors.enabled: true
http.cors.allow-origin: ""
- 重启容器
docker restart cloud_elasticsearch
5.3.2 ik分词器安装
-
下载elasticsearch-analysis-ik:7.6.2版下载地址
-
解压下载好的文件,将解压后的文件夹复制到cloud_elasticsearch容器内
docker cp E:/ik-7.6.2 cloud_elasticsearch:/usr/share/elasticsearch/plugins/
- 重启容器
docker restart cloud_elasticsearch
5.3.3 设置Kibana中文显示
- 进入kibana容器
docker exec -it cloud_kibana /bin/bash
- 通过命令vi /usr/share/kibana/config/kibana.yml修改配置文件
server.name: kibana
server.host: "0"
elasticsearcg.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
# 设置中文
i18n.locale: zh-CN
- 重启容器
docker restart cloud_kibana
/
* 重启容器
~~~shell
docker restart cloud_elasticsearch
5.3.3 设置Kibana中文显示
- 进入kibana容器
docker exec -it cloud_kibana /bin/bash
- 通过命令vi /usr/share/kibana/config/kibana.yml修改配置文件
server.name: kibana
server.host: "0"
elasticsearcg.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
# 设置中文
i18n.locale: zh-CN
- 重启容器
docker restart cloud_kibana
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/199433.html