Typically via HTTP using JSON. Frequently though people realize JSON is a bad format for exchange between many services at scale so they will switch to something like protobufs/thrift/avro.
The HTTP part is not a requirement either, as there are microservices that talk via application specific tcp protocols , udp, or if they are housed on the same machine memory mapped files.
Thanks for mentioning this, I have never considered the mentioned alternative to xml/json for lack of needing to, but I did a quick search to understand a bit more and found this slideshare: http://www.slideshare.net/IgorAnishchenko/pb-vs-thrift-vs-av....
This seems to be much more interesting than I anticipated. But I am left wondering what's the 'market' share for each.
The HTTP part is not a requirement either, as there are microservices that talk via application specific tcp protocols , udp, or if they are housed on the same machine memory mapped files.