开发Spring Cloud Alibaba微服务利用时,mysql、redis和nacos要先搭建好,本文应用docker搭建;

nacos有多种部署形式,见官网文档:nacos docker,这里用的是单机模式mysql模式,所以会与mysql会有关联;

docker-compose.yaml定义文件如下:

version: "3.6"services:  mysql:    image: mysql:${MYSQL_VERSION}    container_name: mysql    ports:      - "${MYSQL_HOST_PORT}:3306"    volumes:      - ${MYSQL_CONF_FILE}:/etc/mysql/conf.d/mysql.cnf:ro      - ${MYSQL_DATA_DIR}:/var/lib/mysql/:rw    restart: on-failure    networks:      - default    environment:      MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"      TZ: Asia/Shanghai  redis:    image: redis:${REDIS_VERSION}    container_name: redis    environment:      TZ: Asia/Shanghai    volumes:      - ${REDIS_LOG_DIR}:/var/log/redis/:rw      - ${REDIS_CONF_FILE}:/usr/local/etc/redis/redis.conf:ro      - ${REDIS_DIR}:/var/lib/redis/6379/:rw    command:      - /usr/local/etc/redis/redis.conf    restart: on-failure    networks:      - default    ports:      - "${REDIS_HOST_PORT}:6379"   nacos:    image: nacos/nacos-server:${NACOS_VERSION}    container_name: nacos    environment:      - "PREFER_HOST_MODE=${PREFER_HOST_MODE}"      - "MODE=${MODE}"      - "SPRING_DATASOURCE_PLATFORM=${SPRING_DATASOURCE_PLATFORM}"      - "MYSQL_SERVICE_HOST=${MYSQL_SERVICE_HOST}"      - "MYSQL_SERVICE_DB_NAME=${MYSQL_SERVICE_DB_NAME}"      - "MYSQL_SERVICE_PORT=${MYSQL_SERVICE_PORT}"      - "MYSQL_SERVICE_USER=${MYSQL_SERVICE_USER}"      - "MYSQL_SERVICE_PASSWORD=${MYSQL_SERVICE_PASSWORD}"    volumes:      - ${NACOS_LOG_DIR}:/home/nacos/logs:rw      - ${NACOS_PROPERTIES}:/home/nacos/init.d/custom.properties    depends_on:      - mysql    ports:      - 8848:8848    restart: on-failure    networks:  default: 

环境变量.env:

###################################################       environment config file            ####################################################################### MySQL #####################MYSQL_VERSION=5.7.24MYSQL_HOST_PORT=3306MYSQL_ROOT_PASSWORD=123456MYSQL_DATA_DIR=./mysqlMYSQL_CONF_FILE=./conf/mysql.cnf#################### Redis #####################REDIS_VERSION=5.0.9REDIS_HOST_PORT=6379REDIS_CONF_FILE=./conf/redis.confREDIS_LOG_DIR=./log/redisREDIS_DIR=./redis#################### NACOS #####################NACOS_VERSION=1.2.1NACOS_LOG_DIR=./log/nacosPREFER_HOST_MODE=hostnameMODE=standaloneSPRING_DATASOURCE_PLATFORM=mysqlMYSQL_SERVICE_HOST=mysql #此处要次要的是要写mysql服务的host,不能写127.0.0.1;间接写mysql即可;MYSQL_SERVICE_DB_NAME=nacosMYSQL_SERVICE_PORT=3306MYSQL_SERVICE_USER=rootMYSQL_SERVICE_PASSWORD=123456NACOS_PROPERTIES=./conf/custom.properties 

文件树结构如下:

├── conf│   ├── conf.d│   ├── custom.properties│   ├── mysql.cnf│   ├── nginx.conf│   └── redis.conf├── docker-compose.yml├── log│   ├── nacos│   └── redis├── mysql│   ├── auto.cnf│   ├── ca-key.pem│   ├── ca.pem│   ├── client-cert.pem│   ├── client-key.pem│   ├── ib_buffer_pool│   ├── ib_logfile0│   ├── ib_logfile1│   ├── ibdata1│   ├── ibtmp1│   ├── mysql│   ├── mysql.error.log│   ├── mysql.slow.log│   ├── nacos│   ├── performance_schema│   ├── private_key.pem│   ├── public_key.pem│   ├── server-cert.pem│   ├── server-key.pem│   └── sys├── redis│   ├── dump.rdb│   └── test.txt└── www

值得注意的是,这里nacos版本是1.2.1,同时初始化的sql脚本nacos-mysql,能够从nacos-mysql脚本获得;

启动服务:

docker-compose -f docker-compose.yml up -dStarting redis ... doneStarting mysql ... doneStarting nacos ... done

查看服务和端口状况:

lsof -nP|grep LISTENidea        411 bigticket  122u     IPv4 0xf5b8d5ea88576b3b          0t0                 TCP 127.0.0.1:6942 (LISTEN)idea        411 bigticket  744u     IPv4 0xf5b8d5ea89a9225b          0t0                 TCP 127.0.0.1:63342 (LISTEN)idea        411 bigticket 1049u     IPv4 0xf5b8d5ea8b092cfb          0t0                 TCP 127.0.0.1:49427 (LISTEN)privoxy     656 bigticket    3u     IPv4 0xf5b8d5ea896a4503          0t0                 TCP 127.0.0.1:1087 (LISTEN)ss-local    663 bigticket    8u     IPv4 0xf5b8d5ea86d77ecb          0t0                 TCP 127.0.0.1:1086 (LISTEN)com.docke  1141 bigticket    7u     IPv4 0xf5b8d5ea808b6de3          0t0                 TCP 127.0.0.1:49948 (LISTEN)com.docke  1145 bigticket   14u     IPv4 0xf5b8d5ea8976d25b          0t0                 TCP 127.0.0.1:6443 (LISTEN)com.docke  1145 bigticket   21u     IPv6 0xf5b8d5ea88f29063          0t0                 TCP *:6379 (LISTEN)com.docke  1145 bigticket   24u     IPv6 0xf5b8d5ea88f26ba3          0t0                 TCP *:3306 (LISTEN)com.docke  1145 bigticket   25u     IPv6 0xf5b8d5ea88f25943          0t0                 TCP *:8848 (LISTEN)

mysql和redis用客户端测试连贯,顺利连上;

浏览器输出http://127.0.0.1:8848/nacos/,初始账号密码:nacos/nacos