I personally use CloudMQTT, I highly recommend it. As I control my devices from outside of my house (I didn't want to port forward and send myself my IP address every X hours) it was a perfect solution for me, I also have my own MQTT server at home which I do not use. I actually have my own online server (I use for customer databases), I've been thinking about setting up an MQTT broker on there, but to date I've not had the time.