vert.x uses hazelcast to find and manage which nodes are connected, and then regular tcp to connect the eventbus across the cluster. So there is no problem with multiple data centers that I can think of other than increased latency when processing event bus messages sent between data centers (should still be quick though, communication between data centers is reliable because they sit on such big pipes). But I think you could have variable time answering requests then - eg, request one sends a message on the eventbus to ask for data and gets routed to a local verticle and completes in 5ms. Request two gets routed to the next data center and takes 50ms. I could be wrong on this though, I'm not 100% sure on how the routing is chosen.
So the only thing you'd need to do is configure hazelcast to pick up all your servers across the different data centers. More info here:
http://vertx.io/manual.html#configuring-clusteringIn particular you'd want to set multicast enabled="false", tcp-ip enabled="true", and manually add the ips of some of your servers in different data centers.