SpringCloud组件搭建

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
  • 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
  • 出现下图,说明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
  • 输入链接:http://localhost:9200/
  • 出现如下界面说明部署成功
    在这里插入图片描述
5.2.2.2 elasticsearch-head
  • 输入链接:http://localhost:9100/
  • 出现如下界面说明部署成功
    在这里插入图片描述
5.2.2.3 kibana
  • 输入链接:http://localhost:5601/app/kibana#/home
  • 出现如下界面说明部署成功
    在这里插入图片描述

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nikolas06

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值