亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springcloud中怎么將nacos作為注冊中心和配置中心

發布時間:2021-07-30 14:06:32 來源:億速云 閱讀:140 作者:Leah 欄目:大數據

本篇文章為大家展示了springcloud中怎么將nacos作為注冊中心和配置中心,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一 配置中心 

  • 添加依賴:

  • <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        <version>${latest.version}</version>
    </dependency>


  • 注意:版本 0.2.x.RELEASE 對應的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 對應的是 Spring Boot 1.x 版本。

  • 更多版本對應關系參考:版本說明 Wiki

  • 在 bootstrap.properties 中配置 Nacos server 的地址和應用名

  • spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    
    spring.application.name=example


  • 說明:之所以需要配置 spring.application.name ,是因為它是構成 Nacos 配置管理 dataId字段的一部分。

  • 在 Nacos Spring Cloud 中,dataId 的完整格式如下:

  • ${prefix}-${spring.profile.active}.${file-extension}


  • prefix 默認為 spring.application.name 的值,也可以通過配置項 spring.cloud.nacos.config.prefix來配置。

  • spring.profile.active 即為當前環境對應的 profile,詳情可以參考 Spring Boot文檔。 注意:當 spring.profile.active 為空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension}

  • file-exetension 為配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 和 yaml 類型。

  • 通過 Spring Cloud 原生注解 @RefreshScope 實現配置自動更新:

  • @RestController
    @RequestMapping("/config")
    @RefreshScope
    public class ConfigController {
    
        @Value("${useLocalCache:false}")
        private boolean useLocalCache;
    
        @RequestMapping("/get")
        public boolean get() {
            return useLocalCache;
        }
    }


  • 首先通過調用 Nacos Open API 向 Nacos Server 發布配置:dataId 為example.properties,內容為useLocalCache=true

  • curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=useLocalCache=true"


  • 運行 NacosConfigApplication,調用 curl http://localhost:8080/config/get,返回內容是 true

  • 再次調用 Nacos Open API 向 Nacos server 發布配置:dataId 為example.properties,內容為useLocalCache=false

  • curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=useLocalCache=false"


  • 再次訪問 http://localhost:8080/config/get,此時返回內容為false,說明程序中的useLocalCache值已經被動態更新了。

  • 注意事項:使用@Value注解的地方必須使用@RefreshScope 實現配置自動更新。而使用 @ConfigurationProperties 則可以實現自動更新。

二 注冊中心

  • 添加依賴:

  • <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>${latest.version}</version>
    </dependency>


  • 注意:版本 0.2.x.RELEASE 對應的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 對應的是 Spring Boot 1.x 版本。

  • 更多版本對應關系參考:版本說明 Wiki

  • 配置服務提供者,從而服務提供者可以通過 Nacos 的服務注冊發現功能將其服務注冊到 Nacos server 上。

  • i. 在 application.properties 中配置 Nacos server 的地址:

  • server.port=8070
    spring.application.name=service-provider
    
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848


  • ii. 通過 Spring Cloud 原生注解 @EnableDiscoveryClient 開啟服務注冊發現功能:

  • @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosProviderApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(NacosProviderApplication.class, args);
    	}
    
    	@RestController
    	class EchoController {
    		@RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
    		public String echo(@PathVariable String string) {
    			return "Hello Nacos Discovery " + string;
    		}
    	}
    }


  • 配置服務消費者,從而服務消費者可以通過 Nacos 的服務注冊發現功能從 Nacos server 上獲取到它要調用的服務。

  • i. 在 application.properties 中配置 Nacos server 的地址:

  • server.port=8080
    spring.application.name=service-consumer
    
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848


  • ii. 通過 Spring Cloud 原生注解 @EnableDiscoveryClient 開啟服務注冊發現功能。給 RestTemplate 實例添加 @LoadBalanced 注解,開啟 @LoadBalanced 與 Ribbon 的集成:

  • @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosConsumerApplication {
    
        @LoadBalanced
        @Bean
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    
        public static void main(String[] args) {
            SpringApplication.run(NacosConsumerApplication.class, args);
        }
    
        @RestController
        public class TestController {
    
            private final RestTemplate restTemplate;
    
            @Autowired
            public TestController(RestTemplate restTemplate) {this.restTemplate = restTemplate;}
    
            @RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
            public String echo(@PathVariable String str) {
                return restTemplate.getForObject("http://service-provider/echo/" + str, String.class);
            }
        }
    }


  • 啟動 ProviderApplication 和 ConsumerApplication ,調用 http://localhost:8080/echo/2018,返回內容為 Hello Nacos Discovery 2018

上述內容就是springcloud中怎么將nacos作為注冊中心和配置中心,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

胶南市| 卓尼县| 汉阴县| 靖安县| 新乡县| 芜湖市| 财经| 开平市| 怀安县| 黑水县| 乌海市| 菏泽市| 晋城| 崇左市| 共和县| 弋阳县| 始兴县| 灵山县| 巴东县| 南川市| 夹江县| 遵化市| 葫芦岛市| 普兰店市| 武安市| 盈江县| 会同县| 利津县| 乡宁县| 襄汾县| 赤峰市| 武胜县| 灵璧县| 噶尔县| 秀山| 德庆县| 吉木乃县| 靖安县| 璧山县| 武功县| 开化县|