UDP Scaling

Hi!

I have a UDP service which I want to scale up to a desired amount.

The service I had working usually binds to a random free port it finds.

So this means if I spawn multiple of the process each will be listening on a different port.

From what I understood in Fly, I need to specifically map the ports specified in the services to what my app will listen.

Example:

[[services]]
internal_port = 5000
protocol = “udp”

[[services.ports]]
port = “5000”

My question is, do I have to make multiple blocks of services and services.port or is there a way to supply a range? As I want to have an x amount of my udp server listening on different ports.
Or maybe there is a way to supply a free port that is exposed to my app which I can use?

I have another question related to the same topic.

I’m testing around at the moment and I have dedicated IP.

So I added multiple services blocks and I have 3 machines running but I am only able to connect to one of them. Any idea what’s wrong?

Fly’s load balancing of traffic (HTTP/S, TCP) uses Fly proxy. UDP on Fly does not use Fly proxy. In practice (i.e. machines actually receiving UDP traffic) I think you may be limited to 1 UDP machine, for each app, per region(?) (+a standby machine for failover - TBC). A work-around would be to use those machines as UDP load balancers sending the traffic to other in-region machines over the private network.

On a more general point, in the event of UDP issues there could be limited and/or delayed support (search this forum for examples of other people’s UDP experiences).

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.