最近使用Nacos的一些問題

最近一個新的產品在使用Nacos作註冊中心和配置中心,在使用的過程當中也發生了一些小問題,在此記錄下。spring

使用版本:bash

<dependency>
  <groupId>com.alibaba.boot</groupId>
  <artifactId>nacos-config-spring-boot-starter</artifactId>
  <version>0.2.2</version>
</dependency>
複製代碼

配置不刷新

好比咱們在啓動類上經過@NacosPropertySource指定了dataId,而後也配置了自動刷新,配置以下:app

@NacosPropertySource(dataId = "application", autoRefreshed = true, type = ConfigType.YAML)
複製代碼

在具體使用的時候也沒太去注意,直接就用了@NacosValue去獲取對應的配置內容。剛開始沒注意到說在後臺改了配置,應用中竟然沒生效,後面是由於須要修改一個配置內容,發現改了以後沒效果,才發現這個問題。spring-boot

解決也很是簡單,在@NacosValue中也將autoRefreshed設置爲true就能夠了,默認值是false。也就是說@NacosPropertySource和@NacosValue中都要配置才行。ui

我我的感受這個不是很方便,大部分人都會認爲@NacosPropertySource設置了應該就是這個對應的dataId裏面的均可以自動刷新,最重要的是自動刷新是配置中心最基本的功能,我沒搞明白爲何默認要關閉,直接默認開啓多友好。spa

還有就是推薦你們都用@Value的方式進行配置的注入,這樣作的好處在於當配置中心切換成其餘的,好比Apollo的時候,不用改任何代碼,若是用的是@NacosValue的話,那麼就得改代碼了。日誌

可是@Value的弊端在Spring Boot中目前是沒法動態更新的,只能依賴@RefreshScope才能夠,但@RefreshScope這玩意是Spring Cloud中的,若是你沒用Spring Cloud就尷尬了。。。code

在Apollo中@Value是支持動態刷新的,點贊點贊。cdn

日誌狂輸出

因爲Nacos naming模塊中輸出了不少info級別的日誌,恰好項目中也設置了info級別,這個時候就會瘋狂輸出下面的日誌,一天下來99%的日誌都是無用的,浪費磁盤....blog

com.alibaba.nacos.client.naming -227843770 [com.alibaba.nacos.client.naming.updater] INFO  ....
複製代碼

在Nacos的文檔中有提到了日誌級別的調整,以下圖:

圖片

若是你用的log4j的換,本身將對應的配置級別調高就行,好比:

<logger name="com.alibaba.nacos.client.naming" additivity="false">
  <level value="warn"/>
  <appender-ref ref="FileAppender" />
  <appender-ref ref="ConsoleAppender" />
</logger>
複製代碼

以上兩個問題並非功能有問題,而是在剛開始使用的過程當中,因爲不是很熟悉,會出現的問題。

相關文章
相關標籤/搜索