ここ数か月、Spring Boot アプリケーションで Eureka を使用しています。@DiscoveryClient
アノテーションを使用して、アプリケーション間のサービス ルックアップを有効にしました。登録、リースの更新、および登録解除は期待どおりに機能します。
最近、非 Java アプリケーション コンポーネント (C++ で記述) があるシナリオに遭遇しました。これは、Spring Boot Java アプリケーションの多くが使用する 3 つの REST サービス エンドポイントを公開します。Spring Boot Java アプリケーションが Eureka を介して通常の検索を実行し、C++ コンポーネントに接続できるように、C++ コンポーネントが Eureka サーバーの REST API を使用して自身を登録できるかどうかを確認しようとしています。
C++ コンポーネントで Eureka Client を使用できないため (明らかに)、Postman を使用して直接 REST API (ここで説明) のテストを開始しました。POST メソッドを使用して JSON ペイロードをhttp://eurekaserver:8761/eureka/apps/FOO-APP (instanceId = 1111 および hostName = foo-app)に送信することにより、登録は問題なく機能しました。http://eurekaserver:8761/eureka/appsにクエリを実行すると、期待どおりに FOO-APP がリストされていることがわかります。
ただし、 http://eurekaserver:8761/eureka/apps/FOO-APP/1111またはhttp://eurekaserver:8761/eureka/apps/FOO-APP/foo-appに対して DELETE メソッドを使用してキャンセル操作を試みると、 404 エラーが発生します。
インスタンス ID を使用:
{
"timestamp": 1447479397996,
"status": 404,
"error": "Not Found",
"message": "Not Found",
"path": "/eureka/apps/FOO-APP/1111"
}
または (hostName についても同じ結果):
{
"timestamp": 1447479397996,
"status": 404,
"error": "Not Found",
"message": "Not Found",
"path": "/eureka/apps/FOO-APP/foo-app"
}
さまざまな組み合わせを試しましたが、これを機能させることができません。明らかな何かが欠けているような気がします-何か小さなものかもしれません。これに関する助けをいただければ幸いです。
PS: Eureka REST エンドポイントのドキュメントでは、URL に「v2」と記載されています。ただし、私の場合はうまくいきません。登録(私にとってはうまくいきます)は、上記のように「v2」を使用しません。誰かがこれを検証できれば、それも役に立ちます。これについては、十分な資料がないようです。