Nacosクラスタの配置と一部のピット

9723 ワード

LinuxにNacosを配備し、独自の埋め込みデータベースの代わりにmysqlを使用し、以前はスタンドアロン版を配備していたときに正常に起動し、午後はクラスタ版を構成する際にいくつかの問題に遭遇して記録した.
まずNacosのtarパッケージをダウンロードし、Github公式サイトや国内のGiteeからダウンロードし、ツールでLinuxホストにドラッグして解凍します.
1、Linuxのmysqlデータベースを配置する:Nacosのconfディレクトリの下でnacos-mysqlという名前を探すことができる.sqlというファイルは、コピーしてデータベースに実行するとnacos_という名前のスクリプトが得られます.configのデータベース
2、ダウンロードはアプリケーションを修正することです.propertiesプロファイル:confディレクトリの下でファイルを見つけ、末尾に追加します.
spring. datasource.platform=mysql
db.num=1
db.url.0= jdbc:mysq1://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connect
Timeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456


3、clusterを修正する.confプロファイル:内容を次のように設定します.
192.168.1.10:3333
192.168.1.10:4444
192.168.1.10:5555

その内容は自分次第で、hostname-iはホストアドレスを表示することができて、今回のテストの中で私は1台のLinuxホストを使って、3つのポートを開放します
4、startupを修正する.sh:変更する前にバックアップしたほうがいいです.binディレクトリの下でスクリプトを見つけます.
export SERVER="nacos-server ”
export MODE="cluster"
export FUNCTION MODE="al 1 "

while getopts :m: f:s:p:" opt
do
	case $opt in 
		m)
			MODE=$OPTARG; ;
		f)
			FUNCT ION MODE=$OPTARG; ;
		S)
			SERVER=SOPTARG; ;
		p)
			PORT=$OPTARG; ;
		?)
		echo "Unknown pa rameter"
	 	exit 1;;
	esac
done

# start
echo "$JAVA ${JAVA_OPT}”> $ {BASE_DIR}/logs/start. out 2>&1 &
nohup $JAVA -Dserver.port=${PORT} $ {JAVA_OPT} nacos.nacos >> $ {BASE_DIR}/logs/start.out 2>&1 &
echo "nacos is starting, you can check the${BASE_DIR}/logs/start.out”


これらの構成を追加した後、Nacosを起動するには./startup.sh-p 3333(ポート番号)で行う
5、Nginxの配置を修正する:(Nginxがインストールされていることを前提とする)conf/nginxを見つける.confによる修正
upstream cluster {
	server 127.0.0.1:3333;
	server 127.0.0.1:4444;
	server 127.0.0.1:5555;
}
server {
	listen  1111;
	server_name  192.168.1.1;  #Linux    
	
	#charset. koi8-r;
	
	#access_log 1ogs/host.access.log main;
	
	location / {
		proxy_pass  http://cluster ;
	}


ここでは、Nginxに1111ポートをリスニングし(ポートを開くことを忘れないでください)、負荷分散を実現させます.
次に./startup.sh -p 3333,./startup.sh -p 4444,./startup.sh-p 4444 Nacosクラスタの起動
ブラウザは192.168.1.1.10:1111/nacosにアクセスしますが、応答はありませんか?
Linuxホストに戻り、nacosのlogs/startを表示します.outの起動ログの結果、次のような内容が見つかりました.
org.springframework.jdbc.cannotgetjdbcconnectionexception: failed to obtain jdbc connection; nested exception is org.apache.commons.dbcp.sqlnestedexception: cannot create poolableconnectionfactory (could not create connection to database server. attempted reconnect 3 times. giving up.)


データベース接続に失敗しましたか?資料を調べてみると、このバージョンのNacosとmysql 8が見つかりました.0以上で互換性に問題がある(1.30はこの問題がないと聞いた)、解決方法:nacosインストールディレクトリの下にplugins/mysqlフォルダを新規作成し、8.0+バージョンのmysql-connector-java-8.0を入れる.xx.jar
はい、Nacosを再起動します.これは起動ログにMySQL接続ドライバの更新を提示します.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automm
atically registered via the SPI and manual loading of the driver class is generally unnecessary.


しかし、また間違えた.
エラーメッセージを見てください.
 failed; error='Cannot allocate memoryy
' (errno=12)

プロジェクトの導入メモリが不足していますか?binディレクトリのstartupを再度開きます.sh表示:
#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "standalone" ]]; then
    JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
    JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
    JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_hee
apdump.hprof"
    JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"

デフォルトで2 gのメモリ領域を起動し、メモリ割り当てを変更します.
if [[ "${MODE}" == "standalone" ]]; then
    JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
    JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
    JAVA_OPT="${JAVA_OPT} -server -Xms500m -Xmx500m -Xmn256m -XX:MetaspaceSize=125m -XX:MaxMetaspaceSize=320m"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_hee
apdump.hprof"
    JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"

OK、Nacosクラスタを再起動して、再度ブラウザで192.168.1.1.110:1111/nacosにアクセスして、成功にアクセスして、勝手に自信を配置して保存して、Linuxホストのデータベースを見て、もしこのデータが挿入したら成功しました!