Ошибка Cepheus Broker не передает обновления Cepheus CEP

Я использую Cepheus GE для своего случая использования, и я включил его в мультитенантном режиме и загрузил свой config.json файл, но когда я начинаю отправлять обновления брокеру Cepheus, чтобы переслать их в CEP, брокер Cepheus просто получает обновления, но не пересылает их в колпачок Cepheus, так как он не может распознать службу и путь службы, которые установлены в config.json, И когда я попытался отправить свои обновления непосредственно в Cepheus-CEP, он принял их и успешно обработал. Поэтому мне интересно, почему брокер Cepheus не может распознать сервис Fiware, если он включен в мультитенантном режиме.

определение службы файла конфигурации выглядит следующим образом

"brokers":[
    {
      "url":"http://XXX.XX.XX.XX:1026",
      "serviceName": "f",
      "servicePath": "/f",
      "authToken": "XXX"
    }
]

это Бревно Цефея Брокер.

2017-09-02 08:55:32,546 [/O dispatcher 1] WARN  c.o.c.b.c.NgsiController - NotifyContext failed for http://localhost:8080/ngsi10/notifyContext$
2017-09-02 09:05:33,358 [nio-8081-exec-1] WARN  c.o.c.b.c.NgsiController - UpdateContext failed for http://localhost:8082: Connection refused
java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_72-internal]
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[na:1.8.0_72-internal]
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:173) ~[httpcore-nio-4.4.1.$
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:147) ~[httpcore-nio-4.4.1$
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:350) ~[httpcore-nio-4.4.1.j$
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:191) ~[httpasync$
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64) ~[httpasyncclient-4.1.jar!$
    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_72-internal]

java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_72-internal]
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[na:1.8.0_72-internal]
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:173) ~[httpcore-nio-4.4.1.$
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:147) ~[httpcore-nio-4.4.1$
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:350) ~[httpcore-nio-4.4.1.j$
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:191) ~[httpasync$
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64) ~[httpasyncclient-4.1.jar!$
    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_72-internal]
2017-09-02 09:33:12,316 [pool-2-thread-1] WARN  c.o.c.b.c.NgsiController - UpdateContext failed for http://localhost:8082: Connection refused
java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_72-internal]
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[na:1.8.0_72-internal]
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:173) [httpcore-nio-4.4.1.j$
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:147) [httpcore-nio-4.4.1.$
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:350) ~[httpcore-nio-4.4.1.j$
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:191) ~[httpasync$
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64) ~[httpasyncclient-4.1.jar!$
    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_72-internal]

И файл сценария, который отправляет обновления, выглядит следующим образом

(curl XXX.XXX.XXX.XXX:8081/v1/updateContext/ -s -S --header 'Content-Type: application/json'  --header "Fiware-Service: f" --header  "Fiware-ServicePath:/f " --header 'Accept: application/json' -d @- | python -mjson.tool ) <<EOF

{ "contextElements": [
    {
        "type": "Lab",
        "isPattern": "false",
        "id": "Lab111",
        "attributes": [
        {
            "name": "priority",
            "type": "double",
            "value": "1"
        },                              
        {
            "name": "controller",
            "type": "string",
            "value": "Controller111"
        }
        ]
    }
],
    "updateAction": "UPDATE"
}
EOF

Теперь, пожалуйста, я хочу знать, где может быть проблема?

1 ответ

На сегодняшний день брокер Fiware-Cepheus не поддерживает мультитенантные запросы (используя Fiware-Service а также Fiware-ServicePath заголовки), только CEP может работать с несколькими арендаторами. В целом, брокер имеет очень мало возможностей по сравнению с полноценным брокером, как Орион.

Если вам нужен мультитенантный брокер, используйте Orion Context Broker: https://fiware-orion.readthedocs.io/en/master/user/multitenancy/index.html

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