Load balancer needs and solutions?

Hi there

I’m slowly getting to know RSocket and my latest wondering about it didn’t find a quick answer Googling it

Does one could explain me which are the options in order to setup a load balancing in a micro service architecture based over RSocket protocol ?

I kinda understood that Netifi provide such of a service. And I also noticed that in the Java implementation of RSocket there is a LoadBalancer directory available in the github repo.

But there is so few informations about this “load balancing over RSocket protocol” topic that I could take good use of any advices.

Best regards

Ben

Hi,

The load balancer in RSocket is a client side loadbalancer you can use with a Java application. You still have to setup security, service discovery, come up with routing, etc.

Netifi’s Broker offers load balancing, service discovery, security, and tag based routing. We have good Spring support too if you are are Spring user. Our next release has dynamic routing, federated clusters (routing between clusters), and an HTTP Gateway.

Netifi’s service discovery uses back-pressure to prevent errors when applications startup. This happens automatically.

In addition to what is mentioned your applications do not need to configure any ports. They just need to connect to broker. This makes developing multiple application micro services easier.

Can you talk more about your use case so I can provide advice?

Thanks,
Robert

Hi @robertroeser

First of all, thanks for your reply.

I can’t really say that I have a use case right now.

The initial question that had me ended up here asking questions about RSocket was : which advantages could take the “rest API based micro-service architecture application” I’m working on been ported to a reactive paradigm ?

Thus, I also had to wonder :

  • blocking or non blocking ?
  • if non blocking, how internal reactive framework back pressure management is working ?
  • if it’s working on an internal basis, would it also work through the network in a heterogeneous Rest API based micro service architecture
  • what about back pressure management when exchanging with other old school (HTTP Rest API) systems not supporting back pressure

Surprisingly, that’s when I’ve discovered RSocket :wink:

I guess that to fulfil my curiosity about RSocket it would takes, as a first step, to turn one of our use case into a real end to end full blown reactive “chain”.

Most of our micro services are Spring Boot WebControler based, so this part shouldn’t be that hard to migrate to Reactor / WebFlux.

The trouble is that we’re on a Rancher, soon K8S, full blown PAAS environment with indeed load balancing and security needs here and there, at very least. And of course we’ll still have to be able to call other team’s REST API.

So, basically, I guess that if I want to setup a POC without reinventing the wheel for the load balancing and security part, I’ll need first to see what I can do with the community edition of Netifi :blush:

Next I’ll need to check how complex it would be to also have one of our NodeJs based micro service moved to this RSocket communication layer.

I’ll keep in touch with you if I manage to setup something alike and need extra advices :upside_down_face:

Sounds good.

Here is a link to our Kubernetes quick start - https://www.netifi.com/getstarted-kubernetes

We have an http gateway that lets you make rest calls to rsocket-rpc services connected to Netifi’s Brokers if you need someone else to call your RSocket services and they haven’t switched from REST - https://github.com/netifi/netifi-httpgateway.

Unfortunately, the documentation needs to be updated, but essential what it lets does is take an IDL and dynamically turn it into a HTTP RESTful stype service.

Thanks,
Robert