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

SpringCloud之consul服務注冊與發(fā)現(xiàn)、配置管理、配置持久化方式

 更新時間:2025年03月24日 14:22:44   作者:夢塵(0_O)  
這篇文章主要介紹了SpringCloud之consul服務注冊與發(fā)現(xiàn)、配置管理、配置持久化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

老牌注冊中心Eureka停更運維,新型的consul、nacos崛起,本文介紹consul服務

一、consul是什么?

Consul 是一套開源的分布式服務發(fā)現(xiàn)和配置管理系統(tǒng),由 HashiCorp 公司用 Go 語言開發(fā)。

提供了微服務系統(tǒng)中的服務治理、配置中心、控制總線等功能。這些功能中的每一個都可以根據(jù)需要單獨使用,也可以一起使用以構建全方位的服務網(wǎng)格,總之Consul提供了一種完整的服務網(wǎng)格解決方案。它具有很多優(yōu)點。包括: 基于 raft 協(xié)議,比較簡潔; 支持健康檢查, 同時支持 HTTP 和 DNS 協(xié)議 支持跨數(shù)據(jù)中心的 WAN 集群 提供圖形界面 跨平臺,支持 Linux、Mac、Windows

作用:

  • 服務發(fā)現(xiàn):提供HTTP和DNS兩種發(fā)現(xiàn)方式
  • 健康監(jiān)測:支持多種方式,HTTP、TCP、Docker、Shell腳本定制化監(jiān)控
  • KV存儲:Key、Value的存儲方式。
  • 多數(shù)據(jù)中心:Consul支持多數(shù)據(jù)中心

可視化Web界面

二、安裝運行consul

下載地址:http://developer.hashicorp.com/consul/install

下載完成后只有一個.exe文件,在該目錄下打開cmd,輸入 consul agent -dev 使用開發(fā)者模式啟動consul

最后在 localhost:8500訪問

訪問結果:

三、使用

1、服務發(fā)現(xiàn)

將微服務注冊到consul服務中心中統(tǒng)一管理

1)在需要注冊的服務的pom文件中引入依賴:

<!--SpringCloud consul discovery -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

注意:引入該依賴的同時也引入了loadbalancer(負載均衡),若使用的遠程調用方式為RestTemplate,需要在創(chuàng)建RestTemplate的配置類中對應Bean的位置加上@LoadBalanced注解,支持負載均衡

    @Bean
    @LoadBalanced //按服務名稱調用時默認負載均衡 要加上該注解支持負載均衡
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

2)配置yaml

spring:
application:
name: cloud-consumer-order
cloud:
consul:
port: 8500
host: localhost
discovery:
prefer-ip-address: true #優(yōu)先使用服務ip進行注冊
service-name: ${spring.application.name}

3)主啟動類添加注解:@EnableDiscoveryClient //**服務注冊和發(fā)現(xiàn)

4)啟動主啟動類,訪問8500端口查看

注冊成功

2、配置管理

通用配置配置在consul,每個服務從consul獲取配置,也可接受動態(tài)刷新

1)服務端加入依賴,調用端不切換配置環(huán)境可以不配置到consul

<!--SpringCloud consul config-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

2)新增配置文件bootstrap.yml

  • applicaiton.yml是用戶級的資源配置項
  • bootstrap.yml是系統(tǒng)級的,優(yōu)先級更加高

Spring Cloud會創(chuàng)建一個“Bootstrap Context”,作為Spring應用的`Application Context`的父上下文。初始化的時候,`Bootstrap Context`負責從外部源加載配置屬性并解析配置。這兩個上下文共享一個從外部獲取的`Environment`。

`Bootstrap`屬性有高優(yōu)先級,默認情況下,它們不會被本地配置覆蓋。 `Bootstrap context`和`Application Context`有著不同的約定,所以新增了一個`bootstrap.yml`文件,保證`Bootstrap Context`和`Application Context`配置的分離。

application.yml文件改為bootstrap.yml,這是很關鍵的或者兩者共存

因為bootstrap.yml是比application.yml先加載的。bootstrap.yml優(yōu)先級高于application.yml

  • bootstrap.yml:
spring:
application:
name: cloud-payment-service
####Spring Cloud Consul for Service Discovery
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${spring.application.name}
config:
profile-separator: '-' # default value is ",",we update '-'
format: YAML

3)在consul中創(chuàng)建配置文件

以config文件夾開始,data文件結束,中間文件夾以服務名稱-配置環(huán)境命名 (不寫為默認環(huán)境)

# config/cloud-payment-service/data
# /cloud-payment-service-dev/data
# /cloud-payment-service-prod/data

4)動態(tài)刷新

在主啟動類上加入 @RefreshScope 注解,這樣在consul中更改配置后,響應配置會在服務端刷新

四、數(shù)據(jù)持久化

問題:我們配置的配置文件,當consul服務退出后就消失了,要將配置的文件持久化到本地,并開機的時候自動啟動consul服務

1、在consul安裝目錄新建一個mydata文件夾存放配置的數(shù)據(jù)

2、新建一個consul_start.txt文件

文件內(nèi)容:

其中寫明consul.exe文件位置和剛創(chuàng)建的mydata文件夾位置。其中mydata后要有空格

@echo.服務啟動......
@echo off
@sc create Consul binpath= "D:\wtp\software\cloud\consul\consul.exe agent -server -ui -bind=127.0.0.1 -client=0.0.0.0 -bootstrap-expect 1 -data-dir D:\wtp\software\cloud\consul\mydata "
@net start Consul
@sc config Consul start= AUTO
@echo.Consul start is OK......success
@pause

3、文件 consul_start.txt 保存后后綴改為.bat

4、以管理員身份運行 consul_start.txt

效果:

總結

本文介紹了consul的安裝、使用、持久化。

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

相關文章

  • Springboot與vue實例講解實現(xiàn)前后端分離的人事管理系統(tǒng)

    Springboot與vue實例講解實現(xiàn)前后端分離的人事管理系統(tǒng)

    這篇文章主要介紹了如何用Java實現(xiàn)企業(yè)人事管理系統(tǒng),文中采用springboot+vue實現(xiàn)前后端分離,感興趣的小伙伴可以學習一下
    2022-06-06
  • Spring @Valid和@Validated區(qū)別和用法實例

    Spring @Valid和@Validated區(qū)別和用法實例

    這篇文章主要介紹了Spring @Valid和@Validated區(qū)別和用法實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • java 定義長度為0的數(shù)組/空數(shù)組案例

    java 定義長度為0的數(shù)組/空數(shù)組案例

    這篇文章主要介紹了java 定義長度為0的數(shù)組/空數(shù)組案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • MybatisPlus分頁失效不起作用的解決

    MybatisPlus分頁失效不起作用的解決

    在使用MybatisPlus的selectPage時發(fā)現(xiàn)分頁不起作用,每次返回的都是全部的數(shù)據(jù),本文就來介紹一下MybatisPlus分頁失效不起作用的解決,感興趣的可以了解一下
    2024-03-03
  • Java vector的詳解及實例

    Java vector的詳解及實例

    這篇文章主要介紹了Java vector的詳解及實例的相關資料,需要的朋友可以參考下
    2017-03-03
  • Java獲取彩色圖像中的主色彩的實例代碼

    Java獲取彩色圖像中的主色彩的實例代碼

    這篇文章主要介紹了Java獲取彩色圖像中的主色彩的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Java中JSON數(shù)據(jù)操作與處理全面指南

    Java中JSON數(shù)據(jù)操作與處理全面指南

    JSON(JavaScript Object Notation)是數(shù)據(jù)交換的輕量級格式,它以易于人類閱讀和機器解析的方式組織數(shù)據(jù),基于鍵值對,在Java開發(fā)中,處理JSON數(shù)據(jù)通常涉及使用Jackson、Gson、Fastjson等庫,本文給大家介紹JSON數(shù)據(jù)操作與處理全面指南,感興趣的朋友一起看看吧
    2024-10-10
  • Springboot+Poi導入Excel表格實現(xiàn)過程詳解

    Springboot+Poi導入Excel表格實現(xiàn)過程詳解

    這篇文章主要介紹了Springboot+Poi導入Excel表格實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Spring解讀@Component和@Configuration的區(qū)別以及源碼分析

    Spring解讀@Component和@Configuration的區(qū)別以及源碼分析

    通過實例分析@Component和@Configuration注解的區(qū)別,核心在于@Configuration會通過CGLIB代理確保Bean的單例,而@Component不會,在Spring容器中,使用@Configuration注解的類會被CGLIB增強,保證了即使在同一個類中多次調用@Bean方法
    2024-10-10
  • Java檢測線程中斷狀態(tài)的方法示例

    Java檢測線程中斷狀態(tài)的方法示例

    這篇文章主要介紹了Java檢測線程中斷狀態(tài)的方法,結合實例形式分析了java針對線程中斷狀態(tài)檢測的相關實現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10

最新評論