Azure IoT Infrastructure: Preventing Connectivity Issues with Raspberry Pi Devices and Stream Analytics Jobs

Preventing Connectivity Issues

Question

In your IoT infrastructure, you have several low-resource Raspberry Pi devices which you need to use as translation gateways, in order to integrate legacy sensors into your solution.

In addition, you have some high-power devices which run Stream Analytics jobs.

The Raspberry devices communicate via MQTT while the more powerful edges use AMQP.

Dusing testing the solution you experience that Pi devices often fail to connect or stop sending telemetry after a certain period.

What (select two) would you do to prevent this behavior?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D. E.

Correct Answers: A and B.

Option A is CORRECT becauseturning off the protocol heads for protocols the device is not using can help in reducing the memory usage.

Option B is CORRECT because by default, the IoT Edge Hub is optimized for performance which, on the other hand, requires more memory on the device.

When experiencing memory problems, disabling the optimized behavior might help.

Option C is incorrect because on the opposite, the not used protocols like AMQP should be disabled in order to save memory.

Option D is incorrect because on the opposite, the performance optimization should be disabled in order to save memory.

Option E is incorrect because the time for temporarily storing the messages on the device should rather be decreased if you want to decrease the memory requirements.

Diagram:

Runtime Settings

Edge Hub

Image * ©

[ mermicrosofecom/azureotedge-hubsiO8

Store and forward configuration ~ time to live (seconds) ©

[7200
Create Options ©
t
“HostConfig': {
“portBindings": {
aaz/tep": [
t
“Hostport: "443"
?
1
“Sera/tep": [
t
“HostPort": "5672"
?
1
"3383/tep": [
t
“HostPort": "8883"
?
1
+
+
i
Environment Variables ©
Name Value
[optimizeForPertomance | [Take

References:

To prevent the Raspberry Pi devices from failing to connect or stop sending telemetry, two possible actions can be taken:

  1. Increase the timeToLive value: The timeToLive value is a property of MQTT messages that determines how long a message will live on the network before it expires. By increasing the timeToLive value, you can ensure that the messages sent by the Raspberry Pi devices will stay alive on the network for a longer period of time, reducing the chances of them being lost due to network connectivity issues.

  2. Set the amqpSettings__enabled to True: AMQP is a more reliable and robust protocol than MQTT, and it is designed to handle intermittent connectivity and network disruptions. By enabling the amqpSettings__enabled setting for the Raspberry Pi devices, you can ensure that they use the AMQP protocol for communication, which will make them more resistant to network failures and connectivity issues.

Therefore, the correct options are C and E. Option C will enable the AMQP protocol for the Raspberry Pi devices, and option E will increase the timeToLive value for MQTT messages, which will make them more resilient to network disruptions.

Option A (setting amqpSettings__enabled to False) will disable the use of the AMQP protocol, which is not recommended given its superior reliability. Option B (setting OptimizeForPerformance to False) will likely reduce the performance of the devices, but it will not necessarily address the connectivity issues. Option D (setting OptimizeForPerformance to True) is not directly related to the connectivity issues and may actually exacerbate them by prioritizing performance over reliability.