nacos-docker cluster模式 mysql8

Nacos官网提供了nacos-docker项目,用于docker环境构建单机、集群模式。目录结构如下:

下面的配置参照根目录下 example/cluster-hostname.yaml example/standalone-mysql-8.yaml 配置文件配置。

下载nacos-docker项目的zip压缩包:https://github.com/nacos-group/nacos-docker

解压:unzip nacos-docker.zip

cd nacos-docker

cp example/cluster-hostname.yaml my-cluster-hostname.yaml

编辑compose文件,my-cluster-hostname.yaml, 修改禁用内部mysql服务

	version: "3"
	services:
	  nacos1:
		hostname: nacos1
		container_name: nacos1
		image: nacos/nacos-server:latest
		volumes:
		  # nacos使用mysql8 需要使用插件目录,该目录存放mysql-connect-java8的驱动,将解压包内example/plugins复制到上级目录
		  - ./plugins/mysql/:/home/nacos/plugins/mysql/
		  - ./cluster-logs/nacos1:/home/nacos/logs
                  # 此处的配置文件来自于example/init.d, 需要移到与example同级
		  - ./init.d/custom.properties:/home/nacos/init.d/custom.properties #  example/init.d/custom.properties复制到上级目录
		ports:
		  - "8848:8848"
		  - "9555:9555"
		#environment:
		# JVM_XMS: 512m
		env_file:
		  - ./env/nacos-hostname.env
		restart: always
		# 去掉mysql服务器依赖
		#depends_on:
		#  - mysql

	  nacos2:
		hostname: nacos2
		image: nacos/nacos-server:latest
		container_name: nacos2
		volumes:
		  - ./plugins/mysql/:/home/nacos/plugins/mysql/  
		  - ./cluster-logs/nacos2:/home/nacos/logs
		  - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
		ports:
		  - "8849:8848"
		env_file:
		  - ./env/nacos-hostname.env
		restart: always
		#depends_on:
		#  - mysql
	  nacos3:
		hostname: nacos3
		image: nacos/nacos-server:latest
		container_name: nacos3
		volumes:
		  - ./plugins/mysql/:/home/nacos/plugins/mysql/  
		  - ./cluster-logs/nacos3:/home/nacos/logs
		  - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
		ports:
		  - "8850:8848"
		env_file:
		  - ./env/nacos-hostname.env
		restart: always
		#depends_on:
		# - mysql
	# 去掉内部mysql
	#  mysql:
	#    container_name: mysql
	#    image: nacos/nacos-mysql:5.7
	#    env_file:
	#      - env/mysql.env
	#    volumes:
	#      - /var/mysql:/var/lib/mysql
	#    ports:
	#      - "3306:3306"

将example/plugins目录移动到与example同级,plugins内存放是mysql8的driver。

修改环境变量文件env/nacos-hostname.env,修改mysql配置:

        PREFER_HOST_MODE=hostname
	NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
	# 改为外部mysql的ip地址,配置用户名密码nacos_config
	MYSQL_SERVICE_HOST=192.168.1.123
	MYSQL_SERVICE_DB_NAME=nacos_config
	MYSQL_SERVICE_PORT=33066
	MYSQL_SERVICE_USER=nacos
	MYSQL_SERVICE_PASSWORD=nacos
	# 自定义jvm参数,更多:https://nacos.io/zh-cn/docs/quick-start-docker.html
	JVM_XMS=512m
	JVM_XMX=512m
	JVM_XMN=256m
	JVM_MS=64m
	JVM_MMS=128m

 下载nacos-db初始化脚本,并创建mysql数据库和nacos用户:

   wget https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

    create database nacos_config character set utf8
    use nacos_config;
    source nacos-mysql.sql;

    create user 'nacos'@'%' identified by 'nacos';
    grant all privileges on nacos_config.* to 'nacos'@'%' WITH GRANT OPTION;
    flush privileges;

启动:docker-compose -f my-cluster-hostname.yaml up (-d 后台启动),会在当前目录(nacos-docker)生成cluster-logs日志文件,每个nacos一个日志文件夹。

使用mysql8,未使用mysql-connector-java-8.x.x.jar的驱动,启动docker后,访问8848端口出现:connection reset by peer.

nacos日志目录:

cluster-logs/nacos1/config-fatal.log出现:nacos [master-db] master db not found.

cluster-logs/nacos1/nacos.log出现:Nacos Server did not start because dumpservice bean construction failure : ...

最后注意一点:安装的mysql时区默认为cst,通过spring json注解格式化以后会出现3小时或者4个小时的误差,需要在mysql链接上增加:&useTimezone=true&serverTimezone=GMT%2B8, 例如:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&allowMultiQueries=true&useTimezone=true&serverTimezone=GMT%2B8

参考:https://nacos.io/zh-cn/docs/quick-start-docker.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值