Any systemd or init script can be implemented in linux cluster as a resource.
So, you will need to write one of those, it should be fairly simple reading the docs.
Be sure to use resource group, as resources in it will follow constraint order, start from first defined to last, stop from last defined to first.
But, applications are mostly load balanced not clustered in classic way, as stomp mentioned.
Can you elaborate more on your application receiving data on any port, does it listen on thousands of ports
Using opensource with haproxy and keepalived one can do great things with backend app balancing and failover using VRRP.
Fairly short and simple configuration, unlike linux cluster which is a complex product.
Keep it simple, stupid if you can.
Hope that helps.
Regards
Peasant.