Использование API не записывается при интеграции кластера WSO2 APIM1.10.0 с кластером WSO2 DAS 3.0.1.

Я использую WSO2 Kubernetes Artifacts для сборки WSO2 APIM 1.10. 0 кластер.

Вот моя конфигурация:

С приведенными выше конфигурациями кластер APIM отлично работает в моей среде kubernetes. Затем я хочу получить статистику от WSO2 DAS 3.0.1. Вот мои шаги.

  1. Откройте страницу панели администратора.
  2. Заполните информацию о DAS.
  3. Сохранить конфигурацию.
  4. Опубликуйте образец API и подпишитесь на него.
  5. Вызовите созданный API.

Хотя API возвращает правильный результат, я не вижу никакой статистики со страницы DAS. Таблица ORG_WSO2_APIMGT_STATISTICS_REQUEST также пуста. Кроме того, в контейнере шлюза есть некоторые исключения:

2017-02-02T10:17:05.119378825Z [2017-02-02 10:17:05,118] ERROR - APIMgtUsageHandler Cannot publish event. null
2017-02-02T10:17:05.119410635Z java.lang.NullPointerException
2017-02-02T10:17:05.119416221Z at org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher.publishEvent(APIMgtUsageDataBridgeDataPublisher.java:124)
2017-02-02T10:17:05.119421345Z at org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageHandler.handleRequest(APIMgtUsageHandler.java:169)
2017-02-02T10:17:05.119425422Z at org.apache.synapse.rest.API.process(API.java:322)
2017-02-02T10:17:05.119429269Z at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:86)
2017-02-02T10:17:05.119432713Z at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:65)
2017-02-02T10:17:05.119444539Z at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:295)
2017-02-02T10:17:05.119448051Z at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83)
2017-02-02T10:17:05.119451190Z at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
2017-02-02T10:17:05.119454693Z at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317)
2017-02-02T10:17:05.119457708Z at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:149)
2017-02-02T10:17:05.119460675Z at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
2017-02-02T10:17:05.119463755Z at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
2017-02-02T10:17:05.119466748Z at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
2017-02-02T10:17:05.119470008Z at java.lang.Thread.run(Thread.java:745)
2017-02-02T10:17:05.292159023Z [2017-02-02 10:17:05,291] ERROR - APIMgtResponseHandler Cannot publish response event. null
2017-02-02T10:17:05.292186860Z java.lang.NullPointerException
2017-02-02T10:17:05.292191607Z at org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher.publishEvent(APIMgtUsageDataBridgeDataPublisher.java:140)
2017-02-02T10:17:05.292196079Z at org.wso2.carbon.apimgt.usage.publisher.APIMgtResponseHandler.mediate(APIMgtResponseHandler.java:211)
2017-02-02T10:17:05.292199487Z at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:84)
2017-02-02T10:17:05.292202823Z at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
2017-02-02T10:17:05.292206246Z at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
2017-02-02T10:17:05.292210195Z at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:155)
2017-02-02T10:17:05.292213976Z at org.apache.synapse.rest.Resource.process(Resource.java:297)
2017-02-02T10:17:05.292216990Z at org.apache.synapse.rest.API.process(API.java:335)
2017-02-02T10:17:05.292220203Z at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:86)
2017-02-02T10:17:05.292223430Z at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:52)
2017-02-02T10:17:05.292226576Z at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:295)
2017-02-02T10:17:05.292229762Z at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529)
2017-02-02T10:17:05.292232861Z at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172)
2017-02-02T10:17:05.292236007Z at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
2017-02-02T10:17:05.292238952Z at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:251)
2017-02-02T10:17:05.292252632Z at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
2017-02-02T10:17:05.292256191Z at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
2017-02-02T10:17:05.292259335Z at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
2017-02-02T10:17:05.292262507Z at java.lang.Thread.run(Thread.java:745)

Проблема может быть такой же, как эта проблема, но я не вижу решения .

Изменить 1

Я также сделал 2 эксперимента следующим образом.

Первый:

  1. Создайте модуль Ubuntu.
  2. Установите WSO2 APIM 1.10.0 в контейнер pod Ubuntu.
  3. Откройте страницу административной панели и заполните информацию DAS.
  4. Опубликуйте образец API и подпишитесь на него.
  5. Вызовите созданный API.

Который отлично работает. Я вижу статистику со страницы DAS.

Второй :

  1. Перейти в контейнер APIM.
  2. Использование telnet для проверки экономичного порта кластера DAS.

Экономный порт был доступен для кластера APIM.

В соответствии с исключением, я думаю, это может быть вызвано отсутствием конфигураций в контейнере шлюза?


person user1802604    schedule 07.02.2017    source источник
comment
Это похоже на проблему с подключением. Вы проверили возможность подключения от узлов шлюза к узлам DAS? При публикации событий с узлов шлюза на узлы DAS используется протокол экономии. Я думаю, что это сработает, если вы используете сервис Kube с одним контейнером. Если у вас несколько контейнеров, служба K8 будет балансировать нагрузку, что может вызвать проблемы. Бережливость — это двухточечное TCP-соединение.   -  person Pubci    schedule 09.02.2017
comment
Я отредактировал вопрос. Пожалуйста, найдите обновление выше.   -  person user1802604    schedule 10.02.2017
comment
Это ваш API без аутентификации?   -  person ruks    schedule 15.02.2017
comment
эм... что ты имеешь в виду non-auth API?   -  person user1802604    schedule 15.02.2017