开发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