New system application called ROS 2 Service Load Balancing.
My colleague @Barry and me @tomoyafujita have been considering the load-balancing use case for ROS 2 service internally. This is still draft but we would love to make a contribution to community and get feedback.
Overview
Objectives
- ROS 2 service load-balancing in application layer without protocol change.
- Support multiple service servers on the same service path to have robustness and load-balancing mechanism.
- Scale / Offload ROS 2 service server/client application with remapping but code modification.
Tutorials
see How to run
Note
- Currently only
rolling
and source build required. - load-balancing algorithm currently supported with
round robin
,least response time
andleast request number
. - We are originally considering
load-balancing
mechanism withKubernetes Service
with using k8s cluster but ROS 2 connects the each endpoint directly in the application layer. So we have this load balancer in the application layer. - Having this load balancer in ROS 2 interfaces, so that we can rely on the features and tools provided by ROS 2. (e.g service introspection, rosbag2)
See more details for,
thanks,
Tomoya