Подключение локально развернутых Hono и Ditto - ОШИБКА 504 - PullRequest
4 голосов
/ 14 января 2020

Hono развернут в кластере Minikube (я следовал https://www.eclipse.org/hono/getting-started/ для локальной настройки Hono), а Ditto работает на localhost. Я пытался следовать этому руководству и адаптировать его так, чтобы он работал для локального развертывания. К сожалению, я не могу подключить Ditto к конечной точке AMQP моего локального экземпляра Hono, который я попробовал следующим образом:

curl -X POST -i -u devops:foobar -H 'Content-Type: application/json' -d '{
  "targetActorSelection": "/system/sharding/connection",
  "headers": {
    "aggregate": false
  },
  "piggybackCommand": {
      "type": "connectivity.commands:testConnection",
      "connection": {
      "id": "hono-example-connection",
      "connectionType": "amqp-10",
      "connectionStatus": "open",
      "failoverEnabled": true,
      "uri": "amqp://consumer%40HONO:verysecret@honotry:15672",
      "sources": [
        {
          "addresses": [
        "telemetry/test_tenant"
          ],
          "authorizationContext": ["nginx:ditto"]
        }
      ]}
    }
}' http://localhost:8080/devops/piggyback/connectivity?timeout=8000

"honotry" разрешает IP-адрес службы "hono-dispatch- маршрутизатор-вн».

Я получаю возврат:

{"?": {"?": {"Type": "devops.responses: errorResponse", "status": 504, " serviceName ": null," instance ": null," payload ": {" status ": 504," error ":" connectivity: connection.failed "," message ":" Соединение с идентификатором 'hono-example-connection' Не удалось подключиться. "," description ":" honotry: Системная ошибка "}}}}

Я не знаю, почему я получаю это сообщение об ошибке.

Я могу подключить локальный экземпляр Ditto к песочнице Hono:

curl -X POST -i -u devops:foobar -H 'Content-Type: application/json' -d '{
  "targetActorSelection": "/system/sharding/connection",
  "headers": {
    "aggregate": false
  },
  "piggybackCommand": {
      "type": "connectivity.commands:testConnection",
      "connection": {
      "id": "hono-example-connection",
      "connectionType": "amqp-10",
      "connectionStatus": "open",
      "failoverEnabled": true,
      "uri": "amqp://consumer%40HONO:verysecret@hono.eclipse.org:15672",
      "sources": [
        {
          "addresses": [
        "telemetry/test_tenant"
          ],
          "authorizationContext": ["nginx:ditto"]
        }
      ]}
    }
}' http://localhost:8080/devops/piggyback/connectivity?timeout=8000

Я получаю возврат:

{"?": {" ? ": {" type ":" connectivity.responses: testConnection "," status ": 200," connectionId ":" hono-example-connection "," testResult ":" успешно подключен + инициализированный преобразователь "}}}

Можно также подключить локальную конечную точку Hono AMQP с помощью клиента командной строки:

java -jar hono-cli-*-exec.jar --hono.client.host=honotry --hono.client.port=15672 --hono.client.username=consumer@HONO --hono.client.password=verysecret --spring.profiles.active=receiver --tenant.id=test_tenant

У кого-нибудь есть идеи, как решить эту проблему? Заранее спасибо!

РЕДАКТИРОВАТЬ:

kubectl get service -n hono

возвращает

NAME                                      TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                           AGE
hono-adapter-amqp-vertx                   LoadBalancer   10.98.166.86     10.98.166.86    5672:32672/TCP,5671:32671/TCP     38d
hono-adapter-amqp-vertx-headless          ClusterIP      None             <none>          <none>                            38d
hono-adapter-http-vertx                   LoadBalancer   10.109.22.54     10.109.22.54    8080:30080/TCP,8443:30443/TCP     38d
hono-adapter-http-vertx-headless          ClusterIP      None             <none>          <none>                            38d
hono-adapter-mqtt-vertx                   LoadBalancer   10.102.80.84     10.102.80.84    1883:31883/TCP,8883:30883/TCP     38d
hono-adapter-mqtt-vertx-headless          ClusterIP      None             <none>          <none>                            38d
hono-artemis                              ClusterIP      10.109.194.251   <none>          5671/TCP                          38d
hono-dispatch-router                      ClusterIP      10.96.42.49      <none>          5673/TCP                          38d
hono-dispatch-router-ext                  LoadBalancer   10.98.212.66     10.98.212.66    15671:30671/TCP,15672:30672/TCP   38d
hono-grafana                              ClusterIP      10.97.9.216      <none>          3000/TCP                          38d
hono-prometheus-server                    ClusterIP      10.102.174.24    <none>          9090/TCP                          38d
hono-service-auth                         ClusterIP      10.101.250.119   <none>          5671/TCP                          38d
hono-service-auth-headless                ClusterIP      None             <none>          <none>                            38d
hono-service-device-connection-headless   ClusterIP      None             <none>          <none>                            38d
hono-service-device-registry              ClusterIP      10.108.127.7     <none>          5671/TCP,8443/TCP                 38d
hono-service-device-registry-ext          LoadBalancer   10.108.60.120    10.108.60.120   28080:31080/TCP,28443:31443/TCP   38d
hono-service-device-registry-headless     ClusterIP      None             <none>          <none>                            38d

honotry установлен в 10.98.212.66 в / etc / hosts.

...