{"action":"opened","issue":{"url":"https://api.github.com/repos/logstash-plugins/logstash-output-redis/issues/15","labels_url":"https://api.github.com/repos/logstash-plugins/logstash-output-redis/issues/15/labels{/name}","comments_url":"https://api.github.com/repos/logstash-plugins/logstash-output-redis/issues/15/comments","events_url":"https://api.github.com/repos/logstash-plugins/logstash-output-redis/issues/15/events","html_url":"https://github.com/logstash-plugins/logstash-output-redis/issues/15","id":106720628,"number":15,"title":"Load-balancing redis output","user":{"login":"krzysztof-jurkowski-roche","id":10741102,"avatar_url":"https://avatars.githubusercontent.com/u/10741102?v=3","gravatar_id":"","url":"https://api.github.com/users/krzysztof-jurkowski-roche","html_url":"https://github.com/krzysztof-jurkowski-roche","followers_url":"https://api.github.com/users/krzysztof-jurkowski-roche/followers","following_url":"https://api.github.com/users/krzysztof-jurkowski-roche/following{/other_user}","gists_url":"https://api.github.com/users/krzysztof-jurkowski-roche/gists{/gist_id}","starred_url":"https://api.github.com/users/krzysztof-jurkowski-roche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krzysztof-jurkowski-roche/subscriptions","organizations_url":"https://api.github.com/users/krzysztof-jurkowski-roche/orgs","repos_url":"https://api.github.com/users/krzysztof-jurkowski-roche/repos","events_url":"https://api.github.com/users/krzysztof-jurkowski-roche/events{/privacy}","received_events_url":"https://api.github.com/users/krzysztof-jurkowski-roche/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-16T08:05:50Z","updated_at":"2015-09-16T08:05:50Z","closed_at":null,"body":"(Moved from [elastic/logstash/issues/3924] (https://github.com/elastic/logstash/issues/3924))\r\n\r\nIn my setup I have a F5 load balancer in front of multiple Redis instances running on different machines. F5 is configured to use Round robin with no persistence.\r\nThe problem is that once a Logstash agent opens a new connection to Redis it is never closed, even if the delay between messages sent by this agent is as big as 30 seconds.\r\nIn the Wireshark capture all I can see is PSH, ACK.\r\n\r\nThis is problematic since load balancer cannot balance an open TCP session. This means that once an agent acquires a connection with one node, it will be assigned to it forever (assuming no connection drop etc).\r\n\r\nWe found a workaround by setting up on F5 an automatic connection reset every 5 seconds. With this not only agents are assigned randomly to Redis instances, but also messages are shuffled across all nodes.\r\n\r\nOur network expert complains that this workaround can introduce performance issues and he suggest that the agent should use UDP, as it is not session aware and it can be load balanced without connection reset.\r\n\r\nIs it possible to use UDP instead of TCP for Redis output? What are your recommendations?\r\n"}}