MySQL + Nginx + Nacos 搭建nacos集群环境

1、安装jdk

参考文章: Centos安装JDK1.8

2、安装MySQL

参考文章: Centos安装MySQL

2.1、docker安装MySQL
  1. 下载镜像文件
    docker pull mysql:5.7
    
  2. 创建实例并启动
    docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7
    
    参数说明
    -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
    -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
    -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
    -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
    -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
  3. MySQL 配置
    vi /mydata/mysql/conf/my.cnf
    
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    
    注意:解决 MySQL 连接慢的问题
    在配置文件中加入如下,并重启 mysql
    [mysqld]
    skip-name-resolve
    解释:
    skip-name-resolve:跳过域名解析
  4. 通过容器的 mysql 命令行工具连接docker exec -it mysql mysql -uroot -proot
  5. 设置 root 远程访问
    grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
    flush privileges;
    
  6. 进入容器文件系统
    docker exec -it mysql /bin/bash
    

3、安装Nginx

参考文章: Centos安装Nginx

  1. 配置Nginx配置文件
    在这里插入图片描述
  2. 启动Nginx
    ./nginx
    
  3. 具体含义可参考该文章: Nginx

4、安装Nacos

  1. 下载地址(我下的是2.0.3版本): Nacos版本下载地址

  2. 下载完成后,放到虚拟机的某个目录,进行解压 nacos-server-2.0.3.tar.gz

    tar -zxvf nacos-server-2.0.3.tar.gz 
    
  3. nacos配置mysql数据库

    • 我使用的是docker安装的MySQL数据库,需要进入容器后,查看容器ip,如果是Centos安装的MySQL,ip就是127.0.0.1.
      在这里插入图片描述
    • 进入nacos目录下的conf目录下
      在这里插入图片描述
    • 配置application.properties文件(最好备份一份 cp application.properties application.properties. init)
      Alt
  4. nacos的集群配置cluster.conf

    • 配置cluster.conf(最好备份一份 cp cluster.conf cluster.conf.init),配置内容如下(配置的是本机真实ip,不能用localhost和127.0.0.1 ,暂时不清楚为什么是这样):
      在这里插入图片描述
    • 上述ip可以通过命令查看,地址如下(如果用第二192.168.56.10,会出现一些问题,集群部署后,会有ip为10.0.2.15:3333等多个nacos被启动,暂时不清楚这个原因):
      在这里插入图片描述
  5. 编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口

    • 进入nacos安装目录下的bin目录下,编辑 startup.sh(建议这个启动文件快照或者cp startup.sh startup.sh.bk一份)
      在这里插入图片描述

      while getopts ":m:f:s:c:p:o:" opt
      do
          case $opt in
              m)
                  MODE=$OPTARG;;
              f)
                  FUNCTION_MODE=$OPTARG;;
              s)
                  SERVER=$OPTARG;;
              c)
                  MEMBER_LIST=$OPTARG;;
              p)
                  EMBEDDED_STORAGE=$OPTARG;;
              o)
                  PORT=$OPTARG;;
              ?)
              echo "Unknown parameter"
              exit 1;;
          esac
      done
      

      在这里插入图片描述

      # start
      echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
      nohup "$JAVA" -Dserver.port=${PORT} "$JAVA_OPT_EXT_FIX" ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
      echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"
      
  6. 复制当前Nacos文件夹复制两份(如果都在一个文件夹启动一个会报错)

    • 启动第一个能成功,如果在当前文件夹下启动第二个,当启动报错信息如下(打印日志,可以进入nacos目录下的log文件夹下的naocs.log文件或者查看Nacos2.0.3的日志(如果没启动Nacos是不会有logs/start.out这个文件的)):

      ./startup.sh -o 3333
      

      在这里插入图片描述
      在这里插入图片描述

    • 分别在不同的copy的nacos文件夹下的startup.sh启动,指定端口号 ./startup.sh -o 端口号。启动成功查看日志,都会出现下图。可以在访问:http://虚拟机ip:3333/nacos/#/login 、http://虚拟机ip:4444/nacos/#/login 、http://虚拟机ip:5555/nacos/#/login,如果都能访问成功,证明集群搭建成功。

      #查看启动nacos实例
      ps -ef|grep nacos|grep -v grep
      

      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

  7. 使用Nginx访问,实现负载均衡效果。之后环境需要配置即可配置该地址即可,实现了nacos集群环境的搭建和使用。
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个基于 Nginx+Nacos+MySQL+Redis+RabbitMQ 的 Java 应用服务集群架构: 1. 前置负载均衡器:使用 Nginx 负责前端流量的负载均衡,将外部的请求分发到后端应用服务器。 2. 服务注册与发现:使用 Nacos 作为服务注册中心,负责服务的注册、发现和配置管理。 3. 数据库服务:使用 MySQL 作为数据库服务,提供数据存储和读写操作。 4. 缓存服务:使用 Redis 作为缓存服务,提供数据缓存和读取加速。 5. 消息队列服务:使用 RabbitMQ 作为消息队列服务,负责异步消息传递和削峰填谷。 6. 应用服务器集群:应用服务器集群包含多个相同的应用服务器实例,负责处理具体的业务逻辑。每个应用服务器实例都需要从 Nacos 中获取服务配置,从 MySQL 中读取和写入数据,从 Redis 中读取缓存数据,以及通过 RabbitMQ 进行异步消息传递。 7. 数据库集群:数据库集群包含多个 MySQL 实例,通过主从复制和读写分离实现高可用和负载均衡。 8. 缓存集群:缓存集群包含多个 Redis 实例,通过数据分片和主从复制实现高可用和负载均衡。 9. 消息队列集群:消息队列集群包含多个 RabbitMQ 实例,通过消息分发和集群模式实现高可用和负载均衡。 该架构可以通过水平扩展和容器化来实现更高的容错性和性能。例如,可以通过 Kubernetes 等容器编排工具来自动化部署和管理该架构的各个组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值