Apiman не восстанавливает шлюз

Не могли бы вы помочь мне со следующей проблемой. Я использую Apiman версии 1.2.1

FROM jboss/wildfly:9.0.2.Final
ENV APIMAN_VERSION 1.2.1.Final

Я выставляю эту версию через kubernetes, так как постоянный том я использую postgres в том же контейнере. Как только я создаю его в первый раз, после этого в apiman я добавил Organization/ API/.... и весь необходимый персонал.

Я нажимаю на кнопку, чтобы опубликовать API, и могу проверить, что он работает отлично, поэтому я использую kubectl port-forward pod-name 8080:8080 и может проверить мой шлюз через браузер http:localhost:8080/apiman-gateway/ORgId/bla/bla/bla/bla?givemedescriptionbyid=1,

После этого я иду к консоли и убиваю apiman pod, в результате перезапуска pod, та же операция kubectl port-forward new-pod-name 8080:8080, и я вижу, что все данные apiman, такие как организация, apis и все остальные сотрудники, уже есть.

Но одна большая проблема, если вы попытаетесь снова вызвать шлюз, он говорит вам, что:

{"responseCode": 500, "message": "API не найден.","trace":"io.apiman.gateway.engine.beans.exceptions.InvalidApiException: API не найден.\n\tat io.apiman.gateway.engine.impl.ApiRequestExecutorImpl$3.handle(ApiRequestExecutorImpl.java:278)\n\tat io.apiman.gateway.engine.impl.ApiRequestExecutorImpl$3.handle(ApiRequestExecutorImpl.java:27.go \ n \ i \ i \ i \ n \ i \ i \ n \ i \ i \ n \ i \ i \ n \ i \ i \ n \ i \ n \ i \ n \ i) \ n \ n \ i \ n.engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:122)\n\tat io.apiman.gateway.engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:111)\n\tat io.apiman.gate.engine.es.CachingESRegistry.getApi(CachingESRegistry.java:116)\n\tat io.apiman.gateway.engine.impl.SecureRegistryWrapper.getApi(SecureRegistryWrapper.java:111)\n\tat io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.execute(ApiRequestExecutorImpl.java:270)\n\tat io.apiman.gateway.platforms.servlet.GatewayServlet.doAction(GatewayServlet.java:232)\n\tat io.apiserv.gate.GatewayServlet.doGet(GatewayServlet.java:77)\ п \ та t javax.servlet.http.HttpServlet.service(HttpServlet.java:687)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\n\tat io.undertow.servlet.handler.erv..handleRequest(ServletHandler.java:86)\n\tat io..java:36)\n\tat org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)\n\tat io.undertow.server.handlers.PredicateHandler.handlejate43and) \ n \ tat io.undertow.servlet. n \ tat io.undertow.server.handlers.PredicateHandler.handl eRequest(PredicateHandler.java:43)\n\tat io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)\n\tat io.undertow.servlet.handhand.intint java:64)\n\tat io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)\n\tat io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleReutheader.jpg ()\n\tat io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)\n\tat io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76o \ n. tat.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) ertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat io.undertow.servlet.hand.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282)\n\tat io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261)\n\ сервировочный сервиз.java:80)\n\tat io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172)\n\tat io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)\n\tat io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.utilThc $Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745)\n"}

Я вижу, что по метрике звонков в api manager все мои звонки могут доходить до apiman-шлюза, но я получаю 500 код ответа.

1 ответ

Если кто-нибудь встретит такую ​​ошибку, то я решил ее с помощью следующих шагов, в первую очередь нам нужно использовать только новую версию APIMAN, список исправлений уже реализован. А также apiman-шлюз не может жить без упругого поиска, чтобы восстановить себя. Следовательно, должна быть предусмотрена конфигурация эластичного поиска.

Другие вопросы по тегам