欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nacos集群模式下服務(wù)無法注冊問題

 更新時間:2022年01月07日 11:30:19   作者:hwk1986  
這篇文章主要介紹了Nacos集群模式下服務(wù)無法注冊問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Nacos集群模式下服務(wù)無法注冊

一、環(huán)境

1、服務(wù)器:騰訊云 CentOS 7.2 64位 機(jī)器三臺

2、JDK1.8.0_151(由于nacos必須1.8以上),1.8以下會有啟動問題,務(wù)必升級

3、nacos版本0.8.0

二、nacos服務(wù)端搭建

基本按照官網(wǎng)文檔就能搭建起來,另外按照官網(wǎng)文檔修改
了cluster.conf,添加了三臺機(jī)器的IP(172.XX.XX.14:8848, 172.XX.XX.7:8848, 172.XX.XX.14:8848),啟動發(fā)現(xiàn)報錯

java.lang.IllegalStateException: unable to find local peer: 118.XX.XX.52:8848, all peers: [172.XX.XX.14:8848, 172.XX.XX.7:8848, 172.XX.XX.14:8848]
        at com.alibaba.nacos.naming.raft.PeerSet.local(PeerSet.java:191)
        at com.alibaba.nacos.naming.monitor.PerformanceLoggerThread.collectmetrics(PerformanceLoggerThread.java:114)
        at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)

不理它,先把報錯的IP加上后,啟動成功。

三、服務(wù)注冊

此時啟動服務(wù)應(yīng)用進(jìn)行服務(wù)注冊,發(fā)現(xiàn)報如下錯誤:

java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([172.XX.XX.23: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)
        at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.register(AbstractAutoServiceRegistration.java:209)
        at org.springframework.cloud.alibaba.nacos.registry.NacosAutoServiceRegistration.register(NacosAutoServiceRegistration.java:75)
        at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.start(AbstractAutoServiceRegistration.java:108)
        at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.bind(AbstractAutoServiceRegistration.java:73)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)

服務(wù)端應(yīng)用啟動報調(diào)用服務(wù)注冊失敗,但nacos服務(wù)后臺三臺機(jī)器均啟動成功,且后臺能正常進(jìn)入,通過URL訪問/nacos/v1/ns/instance,也是能正常訪問。實在無解,調(diào)試代碼

四、問題追蹤

根據(jù)調(diào)試發(fā)現(xiàn),走到了no leader now,遂懷疑nacos注冊中心并未啟動成功,之前在cluster.conf中添加的118.XX.XX.52:8848并未解決真正的問題,所以還是不要偷懶,發(fā)現(xiàn)問題就要找到真實原因,以免把真實原因給蓋掉了

Loggers.RAFT.info("I'm not leader, will proxy to leader.");
            if (RaftCore.getLeader() == null) {
                throw new IllegalArgumentException("no leader now.");
            }

后端日志里確實也打印了這個warning,日志在naming-raft.log中

在這里插入圖片描述

然后開始調(diào)試nacos服務(wù)代碼,通過調(diào)試發(fā)現(xiàn)nacos注冊中心在啟動時會通過NetUtils類中InetAddress.getLocalHost()去獲取本機(jī)的IP地址,但這個IP(118.XX.XX.52:8848)并不是本機(jī)IP,導(dǎo)致了本機(jī)IP不正確,注冊中心并沒加載成功

翻閱下文檔:

深層的原因: 在大多數(shù)Linux操作系統(tǒng)中,都是以/etc/hosts中的配置查找主機(jī)名的而Java 的InetAddress.java 調(diào)用 InetAddressImpl.java 的 public native String getLocalHostName() throws UnknownHostException; 來獲取本地主機(jī)名, Java 的這個方法是native的,是本地系統(tǒng)的一個實現(xiàn),此時根據(jù)本地/etc/hostname文件中的機(jī)器名來獲取本機(jī)IP,然而這個IP并不是這臺機(jī)器的內(nèi)網(wǎng)IP,那這個IP是哪里來的?

查找到騰訊云相關(guān)配置地方,都沒有這個IP,以及在機(jī)器上也沒找到,后來通過PING本機(jī)名獲取到了以上報錯的IP,猜測這個IP是騰訊云統(tǒng)一分配的,而且生產(chǎn)的機(jī)器PING出來的結(jié)果也一樣。

五、解決

1. 設(shè)置本機(jī)名稱:/etc/hostname   mName     最好不是寫IP地址的形式,若寫則必須是本機(jī)的完全I(xiàn)P形式(不要只寫一半),如果有就不用設(shè)置了

2. 在/etc/hosts里加一行 本機(jī)IP mName

3. 重啟注冊中心,注冊中心啟動成功,發(fā)現(xiàn)不報java.lang.IllegalStateException: unable to find local peer: 118.XX.XX.52:8848這個錯誤了,且通過調(diào)試發(fā)現(xiàn),IP確實也正確了

4. 修改cluster.conf去掉了118.XX.XX.52:8848,重啟服務(wù)應(yīng)用進(jìn)行注冊,服務(wù)注冊成功

服務(wù)沒有注冊到nacos的原因分析

因為沒有加上版本號,導(dǎo)致不能注冊。

? ? <dependency>
? ? ? ? <groupId>org.springframework.cloud</groupId>
? ? ? ? <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
? ? ? ? <version>0.2.1.RELEASE</version>
? ? </dependency>

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何自定義hibernate validation注解示例代碼

    如何自定義hibernate validation注解示例代碼

    Hibernate Validator 是 Bean Validation 的參考實現(xiàn) . Hibernate Validator 提供了 JSR 303 規(guī)范中所有內(nèi)置 constraint 的實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何自定義hibernate validation注解的相關(guān)資料,需要的朋友可以參考下
    2018-04-04
  • Java反射機(jī)制及Method.invoke詳解

    Java反射機(jī)制及Method.invoke詳解

    這篇文章主要介紹了Java反射機(jī)制及Method.invoke詳解,本文講解了JAVA反射機(jī)制、得到某個對象的屬性、得到某個類的靜態(tài)屬性、執(zhí)行某對象的方法、執(zhí)行某個類的靜態(tài)方法等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • Java使用線程池實現(xiàn)socket編程的方法詳解

    Java使用線程池實現(xiàn)socket編程的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java使用線程池實現(xiàn)socket編程的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • JVM中最耗cpu的線程查找方法

    JVM中最耗cpu的線程查找方法

    這篇文章主要為大家介紹了JVM中最耗cpu的線程查找方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Mapreduce分布式并行編程

    Mapreduce分布式并行編程

    這篇文章主要為大家介紹了Mapreduce分布式并行編程使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java的后臺文件夾下文件的遍歷完整代碼

    Java的后臺文件夾下文件的遍歷完整代碼

    這篇文章主要介紹了Java的后臺文件夾下文件的遍歷完整代碼,首先分享了java中遍歷一個文件夾里邊的所有文件,然后介紹了用Java遍歷一個文件夾并獲取它里面的所有內(nèi)容詳細(xì)代碼,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • JavaWeb文件上傳與下載功能解析

    JavaWeb文件上傳與下載功能解析

    這篇文章主要為大家詳細(xì)介紹了JavaWeb文件上傳與下載功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 學(xué)習(xí)Java中Class類及其用法

    學(xué)習(xí)Java中Class類及其用法

    這篇文章分為三大部分,主要內(nèi)容有Class類原理詳解、用法及泛化,需要的朋友可以參考下
    2015-07-07
  • java中rss解析器(rome.jar和jdom.jar)示例

    java中rss解析器(rome.jar和jdom.jar)示例

    這篇文章主要介紹了java中rss解析器(rome.jar和jdom.jar)示例,需要的朋友可以參考下
    2014-03-03
  • Java中IO的NIO通道解析

    Java中IO的NIO通道解析

    這篇文章主要介紹了Java中IO的NIO通道解析,NIO 提供了與傳統(tǒng) BIO 模型中的 Socket 和 ServerSocket 相對應(yīng)的 SocketChannel 和 ServerSocketChannel 兩種不同的套接字通道實現(xiàn),需要的朋友可以參考下
    2024-01-01

最新評論