Nacosクラスタの使用について問題があります.code:503 msg:server is STARTING now、please try again later!

4936 ワード

Nacosクラスタを使用して発生した問題について
  • Nacos
  • をインストールします.
  • 単一マシン起動問題
  • Nacosクラスタ問題
  • 問題1.
  • Nacosクラスタの場合、nacos/conf/cluster.com nfファイルのすべてのノードは同じセグメントのイントラネットipを使用しています.
  • 問題2.
  • Nacosクラスタの場合、nacos/conf/cluster.co nfファイルのすべてのノードで使用される異なるセグメントのipは、例えば、(異なるセグメントに注意)
  • 前書き:Eureka 2.0.xとその一部の部品のクローズソースの情報を知っているので、springcloud alibababaセットの孵化を加えて、sprigcloud alibabababababababababababababababaはこれからの期間に熱くなるだろうと思います.alibabababaセットを使うのはEurekaのNacosに代わるものです.nacosは何ですか?ぜひ読んでみたいです.友達についてください.知らないのは見てもいいです.https://blog.csdn.net/xstardust/article/details/81481478
    ところで、私も新入社員です.Nacosを使い始めた時には確かにでこぼこがあります.以下に私の問題を列挙します.みんなで勉強します.間違ったところがあれば、ご指摘をお願いします.ありがとうございます.
    Nacosをインストール
    nacosの基本的なインストールも簡単です.ここで@プログラムの猿DDの文章を見ることをオススメします.配置などの操作を列挙します.Nacosを使ってサービス登録と発見を実現します.
    単独起動問題
    Nacos展開を行った場合、起動時に問題がある場合は、以下の案を見てもいいです.Nacos展開によくある問題をまとめます.
    Nacosクラスタ問題
    ここで私は主にクラスタで遭遇した主要な問題について説明します.
    code:503 msg: server is STARTING now, please try again later!
    
    この問題は二つのカテゴリに分けられます.
    問題1.
    Nacosクラスタの場合、nacos/conf/cluster.co nfファイルのすべてのノードは同じセグメントのイントラネットipを使用しています.
    	   :           
    
    [root@dpl~』((zhi vim/usr/local/nacos/conf/cluster.co nf芫it is ip墮example 172.27.0.6:8848 172.27.0.7:8848 172.27.0.37:8848
    以上はイントラネットの3台のNacosサービスを使ってクラスターを行います.イントラネット、イントラネットです.問題の説明:公式文書に従ってcluster.com nfを修正し、三つのサービスのIPを追加しました.(172.XXX.x.6:8848、172.XXX.x.7:8848、172.XXX.8848)、nacosサービス時報を起動した場合、サービスアプリケーションを起動してサービス登録を行います.
    java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([172.XX.XX.2:80]) tried
            at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:335)
            at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:267)
            at com.alibaba.nacos.client.naming.net.NamingProxy.registerService(NamingProxy.java:167)
            at com.alibaba.nacos.client.naming.NacosNamingService.registerInstance(NacosNamingService.java:170)
            at org.springframework.cloud.alibaba.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:56)
            at org.springframework.cloud.alibaba.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:29)
    
    このエラーを報告しなくても、nacosサービスのコンソールにアクセスできます.登録サービスを行っている間は登録できなくなり、問題が発生します.
    code:503 msg: server is STARTING now, please try again later!
    
    
    しかし、この時私達はnaming-raft.logファイルを調べてログを見て、発見しました.
    2019-05-15 00:02:00,000 WARN [IS LEADER] no leader is available now!
    
    
    この時点で、Nacosクラスタモードからサービスが登録できなくなりました.この問題を解決しました.深い原因は、ほとんどのLinuxオペレーティングシステムでは、ホスト名を/etc/hostsで検索します.JavaのInetAddres.javaはInetAddres Impl.javaのpublic String Horistructhothoneを呼び出します.ローカルホスト名を取得するには、Javaのこの方法は、ネイティブシステムの実装であり、ローカル/etc/hostnameファイルのマシン名来によって、本機のIPを取得しますが、このIPはこのマシンのイントラネットIPではないので、この記事は本機の名前と本機のIPを修正することによって解決されます.
    
    
    問題2.
    Nacosクラスタの場合は、nacos/conf/cluster.co nfファイルのすべてのノードで使用される異なるセグメントのipを、例えば、異なるセグメントで使用しています.
    	   :           
    	          ,     ,         
    
    [root@dpl1~」(芫vim/usr/local/nacos/conf/cluster.co nf菗it is ip咻钾example 59.110.243.42:8848 120.74.129:88488.12.37:8848
    アリ雲やテンセント雲のようなクラウドサーバーは、外部ネットワークのipとイントラネットのipを提供していますが、外部ネットワークのipにアクセスする際には対応するイントラネットのipを指してサーバにアクセスします.nacosクラスタ内部は指定されたカードのipアドレスを使って通信していますが、3台のサーバーがそれぞれのイントラネットのipが同じセグメントにないため、通信ができなくなり、以下の問題が発生します.
    登録サービス:
    code:503 msg: server is STARTING now, please try again later!
    
    
    naming-raft.logログ:
    2019-05-15 00:02:00,000 WARN [IS LEADER] no leader is available now!
    
    
    この問題は長い間探しましたが、最後のソースコードはipアドレスのパラメータを設定することによって、自分で使用するipアドレスを指定できます.この時、起動パラメータを修正して、ipアドレスを設定すれば、nacos/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_heapdump.hprof"
        JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
        
        # *          ip  *
        JAVA_OPT="${JAVA_OPT} -Dnacos.server.ip=59.110.xx.xx"
    
    fi
    
    if [[ "${FUNCTION_MODE}" == "config" ]]; then
        JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=config"
    elif [[ "${FUNCTION_MODE}" == "naming" ]]; then
        JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=naming"
    fi
    
    以上はこの問題の解決に対してで、初めてブログを書きます.注意するところは小さいかもしれません.批判をお願いします.ありがとうございます.