流通センターSVNとして使用SpringCloud、コンフィグ

序文


再構成マイクロサービスの後に、各サービスは、インスタンスの数の展開を必要とし、各インスタンスを手動で設定が変更され、変更、そうspringboot-設定を使用することは不可能です。gitのを使用したい、または内部の問題に起因するだけで、コンフィギュレーション・センターレコードの設定プロセスをSVNを使用することができます

 

SVNの設定をアップロードするディレクトリを作成します。


このステップでは、精巧ではないでしょう... HTTPの究極のディレクトリを://....../config-repo/trunk/**/**--dev.yml,http:// ..... ./config-repo/trunk/**/**--prod.yml

ここでは、ディレクトリ・開発、そして最終的にDEVとはprod接尾辞は、環境を区別するために使用さを区別するための幹線上の(SVNトランクは、この層は、実際には、この層は必要ありません、カタログを持っている必要がありますので、デフォルトです)

 

コンフィグサーバ


コンフィギュレーション・センターでもサービスであり、POMファイルを導入する必要があります

< 依存> 
       < groupIdを> org.springframework.cloud </ groupIdを> 
       < たartifactId >春・クラウド-config設定-サーバー</ たartifactId > 
</ 依存関係>

春ならばapplication.yml文書、利用SVNを以下に示します。profiles.active:Subversionはこれを指定する必要があります

サーバー:
  ポート:8888 
春:
  ファイルアプリケーション:
    名前:-config-サービス
  プロファイル:
    アクティブ:SVN使用して#のSubversionの
  クラウドを:
    設定:
      サーバー:
        SVN:
          URI:HTTP:// ** #svnアドレス
          検索パス: "{アプリケーション} " 使用#{アプリケーション}プレースホルダは、検索フォルダが認識しないか「」を追加する必要があります
          ユーザー:ユーザー名
          パスワード:PWD 
          デフォルトラベル:トランク
ユーレカ:
  クライアント:
    -サービス-URL:
      defaultzone:http://0.0.0.0:8761/eureka / 

#許可/アクチュエータ/バス・リフレッシュ手動で設定リフレッシュし、インタフェースが外部と呼ばれる
管理:
  エンドポイント:
    ウェブ:
      露出:
        含まれます: "*"

コンフィグサーバの起動クラスのサービスを追加する必要があり@EnableConfigServerのコメントを

これまでのところ、サーバーは、より良い構築は、httpにアクセスしようとし始めることができます:// 0.0.0.0: 8888 /(プロファイル名)を使用すると、通常のアクセスをできるかどうかを確認します

倉庫の設定ファイルがWebインターフェイスに変換され、アクセスは以下のルールを参照することができます:

  • / {アプリケーション} / {プロファイル} / {ラベル}]
  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties

例としてneo-config-dev.propertiesでは、そのアプリケーションが新設定され、プロファイルがDEVです。クライアントがいっぱいに応じて対応する構成パラメータを読みすることもできます

SVNの最新バージョンからの読み込みCONFIGSERVER毎回

 

クライアント(マイクロサーバ)


依存追加

 < 依存性> 
        < のgroupId > org.springframework.cloud </ のgroupId > 
        < たartifactId >ばねクラウドスタータ設定</ たartifactId > 
    </ 依存> 
    < 依存性> 
        < のgroupId > org.springframework.boot </ のgroupId > 
        < たartifactId >春・ブート・スターター・ウェブ</ たartifactId > 
    </ 依存関係> 
    < 依存> 
        <groupId >org.springframework.boot </ のgroupId > 
        < たartifactId >ばねブートスタータ試験</ たartifactId > 
        < スコープ>テスト</ スコープ> 
    </ 依存>

各サービスの設定ファイルは、名前のbootstrap.ymlを必要とする、springbootの優先度は起動時に設定ファイルの名前を読みます

春:
  アプリケーション:
    名前:エントリーサービス
  プロファイル:
    アクティブ:Subversionの
  クラウド:
    設定:
      名:{アプリケーション} 
      ラベル:トランク
      ディスカバリー:
        有効:trueに
        サービス名サービス-config設定#レジストリ:サービス-上記ID述べ
      プロフィール:DEV#コンフィギュレーションを指定します環境ファイル
ユーレカ:
  クライアント:
    serviceURLの:
      defaultzone:http://0.0.0.0:8761/eureka/

設定ファイルとして、あなたは物流センターのIDがapplication.nameの実際の設定、サーバーにある指定した後、春のsvnを使用する必要があります。Profiles.active:Subversionのこれも指定する必要があります

注入@valueで使用するコンフィギュレーション・クラスで、設定した後、コンフィギュレーション・センターからの読み取りを開始し@RefreshScope、およびアクセス/アクチュエータ/リフレッシュは、設定をリフレッシュすることができます

 

二つの問題が発生しました:

1.データ項目は@Bean注射で、カスタムデータソースデータソース構成を使用して、マルチソースであるため。
デフォルトの接続プールを使用して上記のひかりSpringBoot 2.0は、接続プールは、一度始め、HikariDataSourceを編集するので、リフレッシュの設定、エラーに関連付けられたデータソースを更新することはできません。

java.lang.IllegalStateException:によって引き起こされる、プールの設定は、一度開始密閉されています。実行時の変更のためのHikariConfigMXBeanを使用してください。

解決策:データソースのカスタムにコメント@RefreshScopeを追加、またはspring.scloud.refresh.extra-リフレッシュ構成を使用するには、クラス名のリストを指定することができます。

 

2. /リフレッシュメッセージ404、2.0 SpringBootインターフェイス/アクチュエータ/リフレッシュ、およびポスト許可を要求しなければなりません

 

おすすめ

転載: www.cnblogs.com/gtblog/p/11250513.html