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 : ...

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章