8

Git サーバーから構成を使用する単純な Spring Cloud 構成サーバーがあります。

ConfigServer の bootstrap.yml :

spring:
  application:
    name: config-service
  cloud:
    config:
      server:
        git:
          uri: ssh://git@mydomain:myport/myrepo.git
          searchPaths: "configurations/{application}/{profile}"
server:
  port: 8888

ローカルに ConfigServer をデプロイすると、から構成を取得できますhttp://localhost:8888/myapp/test。しかし、テストサーバーにConfigServerをデプロイすると、No such label: masterヒットするとスローされますhttp://testserverip:8888/myapp/test

どんな助けでも大歓迎です!

ここに画像の説明を入力

4

10 に答える 10

3

私はこの同じ厄介なシナリオに直面しました。

最初に、このシナリオをどのように解決したかを述べ、後で以前のアプローチで犯した過ちを強調します。私の文脈では、私は使用していますapplication.properties

私のアプリケーションの概要は以下のようになります: 私は一元化された構成サーバーを持っており、それぞれの構成データをそれぞれのマイクロサービスに提供しています。

たとえば、マイクロサービス「limits-service」は、いくつかの構成データを必要とし、中央構成サーバー (「spring-cloud-config-server」) から取得します。したがって、これを実現するために、「limits-service」は中央構成サーバーにクエリを実行し、中央構成サーバーは要求されたデータをリモート git ブランチ (「spring-cloud-samples」) からフェッチします。

                            ┌---------------------- <--> [currency-exchange-service]
    [git] <--> [spring-cloud-config-server] ------- <--> [limits-service] 
                            └---------------------- <--> [currency-conversion-service]

解決:

中央構成サーバーを介していくつかのマイクロサービスによって消費されるすべての構成ファイル用に、新しい Git リポジトリ (spring-cloud-samples) を作成しただけです。

application.properties中央構成サーバー ('spring-cloud-config-server')のファイルで、次のようにプロパティを指定しました。

spring.cloud.config.server.git.uri=https://github.com/{username}/{git-reponame.git}

次のように見えるかもしれません

spring.cloud.config.server.git.uri= https://github.com/alice123/spring-cloud-samples.git それだけです!

central-config-server を起動すると、次のようなログが表示されます。

2020-02-17 05:25:07.867  INFO 15000 --- [nio-8888-exec-9] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/D:/Users/{userName}/AppData/Local/Temp/config-repo-3453413414/limits-service.properties

さらに、「limits-service」を介して構成データも消費しましたが、それは魅力的に機能しました!

次のことを試してみましたが、失敗し、多くの叫び声と叫び声が上がりました. XD

これと同じコンセプトを試している人が夜の仕事を節約できるように、またはおそらくそれを減らすために、私はそれを投稿しています:p

1)最初は、次のように、central-config-server の application.properties ファイルで Git リポジトリ SSH URL を使用していました。

spring.cloud.config.server.git.uri=git@github.com:alice123/spring-cloud-samples.git
spring.cloud.config.server.git.username=alice123
spring.cloud.config.server.git.password=alice123Pwd

その結果、次のエラーが発生しました。

2020-02-17 05:22:45.091  WARN 15000 --- [nio-8888-exec-1] .c.s.e.MultipleJGitEnvironmentRepository : Error occured cloning to base directory.
org.eclipse.jgit.api.errors.TransportException: git@github.com:aniketrb-github/spring-cloud-samples.git: Auth fail

2)後で、Git リモート ブランチ (spring-cloud-samples) を指しているネイティブ/ローカル git ディレクトリから構成データを読み込もうとしました。次に、application.properties ファイルに以下を指定しました。

spring.cloud.config.server.git.uri=file://D:\aniket-workspace\github-ws\microservices\udemy-microservices\git-localconfig-repo

これは次のようにクラッシュしました:

java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.properties'

3)後で十分にグーグルした後、上記のプロパティを以下に変更しました!!:

spring.cloud.config.server.git.uri=D:\\\\alice-workspace\\\\github-ws\\\\microservices\\\\git-localconfig-repo

「制限サービス」は、「spring.cloud.config.server」から構成データを取得しようとしたときに、次のエラーで最終的に失敗しました:

404: Not Found - "org.springframework.cloud.config.server.environment.NoSuchLabelException: No such label: master"

私が述べた解決策は、私が遭遇したすべての失敗のためにうまくいきました。間違っている場合は訂正してください。必要に応じて即興でお願いします。これが役に立ち、重要な時間を節約できることを願っています。

参照: spring-cloud-confighttps-or-sshgit-ssh-windowsgit-ssh-windows-troubleshooting

于 2020-02-17T02:04:29.010 に答える
3

これは、サービスが Git リポジトリにアクセスできない場合に発生します。アプリケーションを起動できるので、テストサーバーは Git にアクセスできると思います。Git サーバーへの SSH 認証をセットアップする必要があります。このサイトで SSH 構成を確認できます。

于 2016-10-14T19:36:50.043 に答える