1

I am using SSE to push notification to client. The articture for my dataservices is as follows:

Client -> API Gateway(Spring cloud api gateway) -> f5(loadBalancer) -> (nginx) ->dataservice

When the load balancer is out of the picture, my notification works perfect but when I introduce f5 load balancer, it does not work and connection breaks.

Does f5 load balancer support long lived http connection? What configuration should I do to make it work.

Eugène Adell
  • 3,089
  • 2
  • 18
  • 34
Amit Pokhrel
  • 282
  • 4
  • 21

2 Answers2

0

Your question is unclear if it doesn't work at all, or if it stops working after a while (and then how long ?)

I suppose your F5 VS (Virtual Server) is of type Standard.

First, we can check if the HTTP Profile is in any way guilty. If your Virtual Server type is Standard virtual server with Layer 7 functionality, change it if possible to Standard by removing the HTTP Profile (and maybe some other profiles, such as caching..). You also can try Performance Layer4 type. Is it solving the issue ? If yes, we need to identify where the problem is, probably in the HTTP Profile or in a timeout setting as described below.

Check the HTTP Profile configured for your VS, at the Response Chunking option and set it to Preserve. See LTM HTTP Profile Option: Response Chunking if you need more details.

Check both Server and Client TCP Profiles related to your VS, their Time Wait option should be Indefinite if you suspect a timeout issue. There are other ways to solve a timeout, I'm just giving one of them. See K70025261 if you need more details.

As you're running SSE, you should probably disable Delayed Acks (enabled by default) and Nagle's Algorithm (disabled by default), as they can make your notifications slower. They're also both at the TCP Profile screen.

Eugène Adell
  • 3,089
  • 2
  • 18
  • 34
  • Hi, with the f5 load balancer in picture, notification does not work at all. My client is angular and i am using eventsource(https://www.npmjs.com/package/ng-event-source) at client side. When f5 is in picture, at client side I get error saying 'no activity within 45000 milliseconds, error connecting'. I will check the configuration you mentioned and let u know. Thanks – Amit Pokhrel Jan 16 '19 at 08:12
  • I don't know this package, maybe it is using websockets ? Maybe can you make a network capture (pcap file) on the client side, and post it here. – Eugène Adell Jan 16 '19 at 08:29
  • I edited my answer in order to identify the problem at the HTTP Profile or not. – Eugène Adell Jan 16 '19 at 08:42
0

To answer the question: YES, F5 supports SSE as I was able to make it work with some configuration tweeks. I cannot paste the configuration snapshot here, but in summary, turning off the **HTTP compression** property seemed to have done the trick for my case.

Amit Pokhrel
  • 282
  • 4
  • 21