问题描述
我正在尝试使用 enmasse 部署 hono。为此,我已经安装了 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
然后我在Hono中创建了租户“iot1”并将“dev”添加到该租户。 之后,我写了一个简单的AMQP-receiver并开始实例如下:
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
另一方面,我的模拟设备将自身与 Hono 的 MQTT 适配器连接,并通过 mqtt 发布遥测和事件。遥测数据由第一个 amqp 接收器接收,没有任何问题。但是一旦事件发布,Hono 的 MQTT-Adapter 就会抛出“无可用信用”错误!
您可以找到 Hono 和 Enmasse here 的日志文件。
谢谢!
更新:
似乎是因为 artemis-broker 无法动态创建事件端点。 IE。向和从队列“事件”发送和接收工作正常,但租户的扩展(例如“事件/iot1”)不起作用,这导致 hono 的 MQTT 适配器中没有可用信用错误。 知道如何在 enmasse yaml 文件中设置 Artemis 的“自动创建-*”选项吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)