MQTT operates over a TCP socket or a secure TCP socket and so any number of instances should be possible. This has nothing to do with Ethernet or the number of Ethernet controllers available but is restricted only by the resources available (mainly RAM).
Each MQTT client can have its own MQTT broker settings and behave independently of other MQTT clients that are operating on the top of the same TCP/IP stack.
I don’t know details of the LWIP MQTT implementation but with the uTasker MQTT client any number can be used, whereby it is to note that the TLS layer, when using secure MQTT connections is where the most RAM is required and so is more of the practical limit if multiple secure sessions are used in parallel.
Read more here: Source link