国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot+dubbo項目啟動項目時報錯 zookeeper not connected

這篇具有很好參考價值的文章主要介紹了springboot+dubbo項目啟動項目時報錯 zookeeper not connected。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

現(xiàn)象

項目在公司網(wǎng)絡(luò)啟動時,能正常啟動。但通過vpn連接到公司網(wǎng)絡(luò)時卻無法啟動報下面的錯誤java.lang.IllegalStateException: zookeeper not connected。

Caused by: java.lang.IllegalStateException: zookeeper not connected
	at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(CuratorZookeeperClient.java:84)
	at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter.createZookeeperClient(CuratorZookeeperTransporter.java:26)
	at org.apache.dubbo.remoting.zookeeper.AbstractZookeeperTransporter.connect(AbstractZookeeperTransporter.java:68)
	at org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfiguration.<init>(ZookeeperDynamicConfiguration.java:66)
	at org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfigurationFactory.createDynamicConfiguration(ZookeeperDynamicConfigurationFactory.java:43)
	at org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory.lambda$getDynamicConfiguration$0(AbstractDynamicConfigurationFactory.java:39)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
	at org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory.getDynamicConfiguration(AbstractDynamicConfigurationFactory.java:39)
	at org.apache.dubbo.common.config.configcenter.DynamicConfiguration.getDynamicConfiguration(DynamicConfiguration.java:224)
	at org.apache.dubbo.config.bootstrap.DubboBootstrap.prepareEnvironment(DubboBootstrap.java:1024)
	at org.apache.dubbo.config.bootstrap.DubboBootstrap.startConfigCenter(DubboBootstrap.java:619)
	at org.apache.dubbo.config.bootstrap.DubboBootstrap.initialize(DubboBootstrap.java:521)
	at org.apache.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:244)
	at org.apache.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:206)
	at org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.doGetInjectedBean(ReferenceAnnotationBeanPostProcessor.java:165)
	at com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor.getInjectedObject(AbstractAnnotationBeanPostProcessor.java:409)
	at com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor$AnnotatedFieldElement.inject(AbstractAnnotationBeanPostProcessor.java:626)
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
	at com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor.postProcessPropertyValues(AbstractAnnotationBeanPostProcessor.java:179)
	... 78 common frames omitted
Caused by: java.lang.IllegalStateException: zookeeper not connected
	at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(CuratorZookeeperClient.java:81)
	... 96 common frames omitted
Disconnected from the target VM, address: '127.0.0.1:52979', transport: 'socket'

Process finished with exit code 1

猜測:連接到zookeeper的服務(wù)器網(wǎng)絡(luò)策略不通
— 通過telnet證實端口網(wǎng)絡(luò)時通的。該猜測不成立。

定位問題

進一步經(jīng)過報錯的日志,找到對應(yīng)的源碼。

public class CuratorZookeeperClient extends AbstractZookeeperClient<CuratorZookeeperClient.NodeCacheListenerImpl, CuratorZookeeperClient.CuratorWatcherImpl> {

    protected static final Logger logger = LoggerFactory.getLogger(CuratorZookeeperClient.class);
    private static final String ZK_SESSION_EXPIRE_KEY = "zk.session.expire";

    static final Charset CHARSET = StandardCharsets.UTF_8;
    private final CuratorFramework client;
    private static Map<String, NodeCache> nodeCacheMap = new ConcurrentHashMap<>();

    public CuratorZookeeperClient(URL url) {
        super(url);
        try {
            int timeout = url.getParameter(TIMEOUT_KEY, DEFAULT_CONNECTION_TIMEOUT_MS);
            int sessionExpireMs = url.getParameter(ZK_SESSION_EXPIRE_KEY, DEFAULT_SESSION_TIMEOUT_MS);
            CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder()
                    .connectString(url.getBackupAddress())
                    .retryPolicy(new RetryNTimes(1, 1000))
                    .connectionTimeoutMs(timeout)
                    .sessionTimeoutMs(sessionExpireMs);
            String authority = url.getAuthority();
            if (authority != null && authority.length() > 0) {
                builder = builder.authorization("digest", authority.getBytes());
            }
            client = builder.build();
            client.getConnectionStateListenable().addListener(new CuratorConnectionStateListener(url));
            client.start();
            boolean connected = client.blockUntilConnected(timeout, TimeUnit.MILLISECONDS);
            if (!connected) {
                throw new IllegalStateException("zookeeper not connected");
            }
        } catch (Exception e) {
            throw new IllegalStateException(e.getMessage(), e);
        }
    }

可以看出 是 boolean connected = client.blockUntilConnected(timeout, TimeUnit.MILLISECONDS); 這里 connected 返回了fasle導(dǎo)致的問題。
然后下端點, 發(fā)現(xiàn)timeout = 3000 ,也就說3秒內(nèi)需要鏈接成功,否則就會超時。

推測由于vpn的方式連接的 zk服務(wù)器,很有可能是 3秒內(nèi)沒有得到服務(wù)端的正確響應(yīng),而導(dǎo)致了異常,然后拋出了異常。

基于上的推測,將該timeout的默認(rèn)值3000改大一些后,然后就啟動成功了。

解決

修改dubbo的配置,下面是springboot的項目,修改的方式。
從上面的報錯信息是可以看出是 configcenter的連接超時。下面配置了三個配置的超時時間,可根據(jù)情況進行配置。

dubbo:
  config-center:
    timeout: 60000
  metadata-report:
    timeout: 60000
  registry:
    timeout: 60000

注意: 有可能版本的問題,上面3個屬性,全部配置了,有可能項目啟動報錯, 請根據(jù)保持信息,適當(dāng)調(diào)整刪減屬性后重試。文章來源地址http://www.zghlxwxcb.cn/news/detail-503736.html

到了這里,關(guān)于springboot+dubbo項目啟動項目時報錯 zookeeper not connected的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Vue:項目啟動時報錯These dependencies were not found 解決辦法

    Vue:項目啟動時報錯These dependencies were not found 解決辦法

    在命令提示符中輸入下載依賴包的命令 出現(xiàn)錯誤 原因分析 可能因為npm版本過高,所以對某些命令比npm6.x更嚴(yán)格 解決方案 1、刪掉node_moudles文件夾 2、使用npm install –legacy-peer-deps重新安裝所有依賴包 每天進步一點點,開心也多一點點

    2024年01月19日
    瀏覽(29)
  • idea的maven多模塊項目啟動時報錯:Could not find artifact或者錯誤找不到符號

    idea的maven多模塊項目啟動時報錯:Could not find artifact或者錯誤找不到符號

    1、問題描述: 多個項目中遇到idea的多模塊maven項目,在啟動的時候會報錯: 【Could not find artifact,找不到包】 或者 【錯誤:找不到符號(但明明代碼不報紅)】 但是在別人的idea上卻能正常啟動。 2、解決方法: (1)原因說明: 后來發(fā)現(xiàn),項目啟動時,idea會自動調(diào)用mav

    2024年02月17日
    瀏覽(24)
  • SpringBoot + Dubbo + zookeeper實現(xiàn)

    目錄 一,框架搭建 1. 啟動zookeeper ! 2. IDEA創(chuàng)建一個空項目; 3.創(chuàng)建一個模塊,實現(xiàn)服務(wù)提供者:provider-server , 選擇web依賴即可 4.項目創(chuàng)建完畢,我們寫一個服務(wù),比如賣票的服務(wù) 編寫接口 編寫實現(xiàn)類 編寫service 二,服務(wù)提供者 1,第一步? zookeeper的包我們?nèi)aven倉庫下載,

    2024年04月26日
    瀏覽(16)
  • SpringBoot整合Dubbo+Zookeeper

    SpringBoot整合Dubbo+Zookeeper

    Dubbo概述 學(xué)習(xí)Dubbo前你要了解這些 安裝zk Zookeeper概述與安裝 Dubbo在zk中的存儲結(jié)構(gòu) Dubbo的注冊中心有哪些 1、 Multicast :Multicast 注冊中心不需要啟動任何中心節(jié)點,只要廣播地址一樣,就可以互相發(fā)現(xiàn)。 2、 Zookeeper 是 Apache Hadoop 的子項目,是一個樹型的目錄服務(wù),支持變更推

    2024年02月04日
    瀏覽(20)
  • SpringBoot學(xué)習(xí)(八)-SpringBoot + Dubbo + zookeeper

    SpringBoot學(xué)習(xí)(八)-SpringBoot + Dubbo + zookeeper

    1)什么是分布式系統(tǒng)? 在《分布式系統(tǒng)原理與范型》一書中有如下定義:“ 分布式系統(tǒng)是若干獨立計算機的集合 ,這些計算機對于用戶來說就 像單個相關(guān)系統(tǒng) ”; 分布式系統(tǒng)是由一組通過網(wǎng)絡(luò)進行通信、為了完成共同的任務(wù)而協(xié)調(diào)工作的計算機節(jié)點組成的系統(tǒng) 。分布式

    2024年02月02日
    瀏覽(10)
  • 【SpringBoot整合Dubbo和Zookeeper】

    【SpringBoot整合Dubbo和Zookeeper】

    本筆記內(nèi)容為狂神說SpringBoot集成Dubbo和Zookeeper部分 目錄 一、Dubbo dubbo基本概念 調(diào)用關(guān)系說明 二、Dubbo環(huán)境搭建? 三、Window下安裝zookeeper 1、下載zookeeper? 2、運行 3、測試 四、window下安裝dubbo-admin 1、下載dubbo-admin 2、解壓進入目錄 3、在項目目錄下打包dubbo-admin 4、執(zhí)行 五、S

    2024年02月08日
    瀏覽(15)
  • SpringBoot~ dubbo + zookeeper實現(xiàn)分布式開發(fā)的應(yīng)用

    SpringBoot~ dubbo + zookeeper實現(xiàn)分布式開發(fā)的應(yīng)用

    配置服務(wù)名字, 注冊中心地址, 掃描被注冊的包 server.port=8081 #當(dāng)前應(yīng)用名字 dubbo.application.name=provider-server #注冊中心地址 dubbo.registry.address=zookeeper://127.0.0.1:2181 #掃描指定包下服務(wù) dubbo.scan.base-packages=com.demo.service 實現(xiàn)一個接口,在接口中完成需求 public interface Translate { String tran

    2024年04月10日
    瀏覽(20)
  • 啟動springboot項目時報錯:?無法訪問org.springframework.web.bind.annotation.GetMapping …具有錯誤的版本 61.0,應(yīng)為52.0?

    啟動springboot項目時報錯:?無法訪問org.springframework.web.bind.annotation.GetMapping …具有錯誤的版本 61.0,應(yīng)為52.0?

    報錯原因:jdk版本1.8 與 spring boot 3.0.1?版本不匹配 解決方案:將springboot版本降級即可(比如2.5.4就是穩(wěn)定版本)。如下圖: ?注意:修改完成后刷新下maven,如下圖。 啟動成功后,如下圖。 ?由上圖可知,啟動時攜帶的端口是8080,context path是空,也就是說訪問時一個斜杠就

    2024年02月11日
    瀏覽(95)
  • zookeeper和dubbo面試題,,Java初級項目案例

    zookeeper和dubbo面試題,,Java初級項目案例

    一致性(Consistency)是指多副本(Replications)問題中的數(shù)據(jù)一致性。可以分為強一致性、順序一致性與弱一致性。 1.1 強一致性(Strict Consistency) 也稱為:**原子一致性(Atomic Consistency)** 線性一致性(Linearizable Consistency) 強一致性有兩個要求: 任何一次讀都能讀到某個數(shù)據(jù)

    2024年03月16日
    瀏覽(18)
  • Alibaba spring cloud Dubbo使用(基于Zookeeper或者基于Nacos+泛化調(diào)用完整代碼一鍵啟動)

    Alibaba spring cloud Dubbo使用(基于Zookeeper或者基于Nacos+泛化調(diào)用完整代碼一鍵啟動)

    Dubbo!用更優(yōu)雅的方式來實現(xiàn)RPC調(diào)用吧 - 掘金 項目結(jié)構(gòu): 僅僅是提供服務(wù)的接口: pom: DubboServerApplication: HelloServiceImpl實現(xiàn)dubbo服務(wù): 配置文件application.yaml: zookeeper是我的一臺云服務(wù)器,zookeeper需要先部署好。 pom文件與Server相似: DubboClientApplication: RpcService: 通過Reference注

    2024年04月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包