ここ数ヶ月間、EurekaをSpringブートアプリケーションで使用しています。 @DiscoveryClient
アノテーションを使用してアプリケーション間のサービス検索を有効にしました。登録、リースの更新、および登録解除は、期待通りに機能します。EurekaをREST APIを使用したレジストリとして使用
最近では、Spring以外のJavaアプリケーションコンポーネント(C++で書かれています)があり、Spring Boot Javaアプリケーションの多くが使用する3つのRESTサービスエンドポイントを公開しています。 C++コンポーネントがEurekaサーバーのREST APIを使用して自身を登録することができるかどうかを確認しようとしています。そのため、SpringブートJavaアプリケーションはEurekaを介してC++コンポーネントと連絡を取り合うことができます。
私はC++コンポーネント(明らかに)でEureka Clientを使うことができないので、Postmanを使って直接REST APIを(hereのように)テストし始めました。 POSTメソッドを使用してJSONペイロードをhttp://eurekaserver:8761/eureka/apps/FOO-APP(instanceId = 1111およびhostName = foo-app)に送信することにより、登録は問題なく動作しました。私はhttp://eurekaserver:8761/eureka/appsを照会でき、FOO-APPが期待通りにそこにリストされているのを見ることができます。
ただし、DELETEメソッドを使用してキャンセル操作をhttp://eurekaserver:8761/eureka/apps/FOO-APP/1111またはhttp://eurekaserver:8761/eureka/apps/FOO-APP/foo-appにしようとすると、404エラーが発生します。するinstanceIdで
:
{
"timestamp": 1447479397996,
"status": 404,
"error": "Not Found",
"message": "Not Found",
"path": "/eureka/apps/FOO-APP/1111"
}
OR(ホスト名の同じ結果):
{
"timestamp": 1447479397996,
"status": 404,
"error": "Not Found",
"message": "Not Found",
"path": "/eureka/apps/FOO-APP/foo-app"
}
私はさまざまな組み合わせを試してみましたが、私はこの仕事をすることはできませんよ。私は何かが分かりにくいと感じています - 小さなものかもしれません。これについての助けに感謝します。
PS: Eureka RESTエンドポイントのドキュメントには、URLに「v2」と記載されています。しかし、それは私の場合は機能しません。登録(私のために働く)は、上記のように "v2"を使用しません。誰かがこれを検証することができれば、それも役に立つでしょう。これには十分な資料がないようです。
代わりにサイドカーを使用したことはありますか? C++アプリケーションが他のデプロイされたサービスに接続したい場合は、登録を扱い、逆プロキシとしても機能します。アプリケーションでは、定義済みの形式で状態を公開するだけです。 –
これはオプションです。しかし、私はストレートRESTエンドポイントを呼び出すことによってこれを達成しようとしています。私の意見では、cURL呼び出しが機能するはずです。しかし、それは起こっていない。 – Bloodysock
spring-cloudにはv2が含まれていませんでした。おそらく間違ったinstanceIdを使用しています。あなたはどの春の雲のバージョンを使用していますか?アプリケーションのどこかで 'instanceId'を設定していますか? – spencergibb