Интеграция Hono и Enmass вызывает ошибки событий
Я пытаюсь развернуть хоно с помощью enmasse. Для этого я уже установил enmasse и создал адресные пространства и адреса следующим образом:
enmasse_iot.yaml
apiVersion: enmasse.io/v1beta1
kind: AddressSpace
metadata:
name: iot1
spec:
type: standard
plan: standard-medium
authenticationService:
name: standard-authservice
---
apiVersion: enmasse.io/v1beta1
kind: Address
metadata:
name: iot1.command
spec:
address: command
type: anycast
plan: standard-medium-anycast
---
apiVersion: enmasse.io/v1beta1
kind: Address
metadata:
name: iot1.command-internal
spec:
address: command_internal
type: anycast
plan: standard-medium-anycast
---
apiVersion: enmasse.io/v1beta1
kind: Address
metadata:
name: iot1.command-response
spec:
address: command_response
type: anycast
plan: standard-medium-anycast
---
apiVersion: enmasse.io/v1beta1
kind: Address
metadata:
name: iot1.telemetry
spec:
address: telemetry
type: anycast
plan: standard-medium-anycast
---
apiVersion: enmasse.io/v1beta1
kind: Address
metadata:
name: iot1.event
spec:
address: event
type: queue
plan: standard-small-queue
---
apiVersion: user.enmasse.io/v1beta1
kind: MessagingUser
metadata:
name: iot1.hono
spec:
username: hono
authentication:
type: password
password: SE9OTw== # pwd=HONO, Base64 encoded
authorization:
- addresses: ["*"]
operations: ["send","recv","view","manage"]
Hono устанавливается поверх диаграмм управления и использует следующий файл значений:
livenessProbeInitialDelaySeconds: 900
readinessProbeInitialDelaySeconds: 45
useLoadBalancer: false
amqpMessagingNetworkExample:
enabled: false
commandRouterService:
extraSecretMounts:
amqp-network:
secretName: "mysecret"
mountPath: "/etc/custom"
adapters:
http:
extraSecretMounts:
amqp-network:
secretName: mysecret
mountPath: /etc/custom
mqtt:
extraSecretMounts:
amqp-network:
secretName: mysecret
mountPath: /etc/custom
amqpMessagingNetworkSpec:
host: messaging-5355a0a.enmasse-infra
port: 5671
credentialsPath: /etc/custom/amqp-credentials.properties
commandAndControlSpec:
host: messaging-5355a0a.enmasse-infra
port: 5671
credentialsPath: /etc/custom/amqp-credentials.properties
deviceRegistryExample:
enabled: true
addExampleData: false
extraSecretMounts:
amqp-network:
secretName: mysecret
mountPath: /etc/custom
mongodb:
createInstance: false
Затем я создал арендатора «iot1» и добавил к нему «dev» в Hono. После этого я написал простой AMQP-приемник и приступил к инстансам следующим образом:
python ./amqp-receiver.py -s amqps://10.100.42.58:5671 -a telemetry/iot1
python ./amqp-receiver.py -s amqps://10.100.42.58:5671 -a event/iot1
С другой стороны, мое смоделированное устройство подключается к MQTT-адаптеру Hono и публикует как телеметрию, так и события через mqtt. Данные телеметрии принимаются первым amqp-приемником без проблем. Но как только событие публикуется, MQTT-адаптер Hono выдает ошибку «нет кредита»!
Вы можете найти лог файлы Hono и Enmasse здесь .
- Что-то не так с брокером enmasse - см. Файлы журналов?
- Мои настройки набора неверны? Или это лучший и более чистый способ настроить enmassse для Hono?
- Как обращаться с событиями и командами?
Спасибо!