错误仙王星经纪不转发更新到仙王座CEP
问题描述:
我使用Cepheus GE为我的用例,我启用它在多租户模式,并上传我的config.json
文件,但当我开始发送更新到仙王座经纪人的顺序为了将它们转发给CEP,Cepheus经纪人只收到更新,但不会将它们转发给Cepheus上限,因为它无法识别在config.json
中设置的服务和服务路径。当我试图将我的更新直接发送到Cepheus-CEP时,它接受并成功处理了它们。所以我想知道为什么Cepheus经纪人在多租户模式下启用时无法识别Fiware服务。错误仙王星经纪不转发更新到仙王座CEP
配置文件服务定义如下
"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
现在请我想知道这个问题可能是什么?
答
到目前为止,Fiware-Cepheus代理不支持多租户请求(使用Fiware-Service
和Fiware-ServicePath
标头),只有CEP可以处理多租户。更一般地说,与像Orion这样的全面经纪人相比,经纪人的功能非常少。
如果你需要一个多租户代理,请使用猎户座上下文经纪人:https://fiware-orion.readthedocs.io/en/master/user/multitenancy/index.html
@Marc你有什么想法? – ahmad