{"action":"created","issue":{"url":"https://api.github.com/repos/basho/riak-dotnet-client/issues/306","repository_url":"https://api.github.com/repos/basho/riak-dotnet-client","labels_url":"https://api.github.com/repos/basho/riak-dotnet-client/issues/306/labels{/name}","comments_url":"https://api.github.com/repos/basho/riak-dotnet-client/issues/306/comments","events_url":"https://api.github.com/repos/basho/riak-dotnet-client/issues/306/events","html_url":"https://github.com/basho/riak-dotnet-client/issues/306","id":147808316,"number":306,"title":"Riak client does not support the use of a load balancer","user":{"login":"rob-somerville","id":12766610,"avatar_url":"https://avatars.githubusercontent.com/u/12766610?v=3","gravatar_id":"","url":"https://api.github.com/users/rob-somerville","html_url":"https://github.com/rob-somerville","followers_url":"https://api.github.com/users/rob-somerville/followers","following_url":"https://api.github.com/users/rob-somerville/following{/other_user}","gists_url":"https://api.github.com/users/rob-somerville/gists{/gist_id}","starred_url":"https://api.github.com/users/rob-somerville/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rob-somerville/subscriptions","organizations_url":"https://api.github.com/users/rob-somerville/orgs","repos_url":"https://api.github.com/users/rob-somerville/repos","events_url":"https://api.github.com/users/rob-somerville/events{/privacy}","received_events_url":"https://api.github.com/users/rob-somerville/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/basho/riak-dotnet-client/labels/Bug","name":"Bug","color":"e10c02"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/basho/riak-dotnet-client/milestones/12","html_url":"https://github.com/basho/riak-dotnet-client/milestones/riak-dotnet-client-2.3.0","labels_url":"https://api.github.com/repos/basho/riak-dotnet-client/milestones/12/labels","id":1618174,"number":12,"title":"riak-dotnet-client-2.3.0","description":"Riak TS support","creator":{"login":"lukebakken","id":514926,"avatar_url":"https://avatars.githubusercontent.com/u/514926?v=3","gravatar_id":"","url":"https://api.github.com/users/lukebakken","html_url":"https://github.com/lukebakken","followers_url":"https://api.github.com/users/lukebakken/followers","following_url":"https://api.github.com/users/lukebakken/following{/other_user}","gists_url":"https://api.github.com/users/lukebakken/gists{/gist_id}","starred_url":"https://api.github.com/users/lukebakken/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukebakken/subscriptions","organizations_url":"https://api.github.com/users/lukebakken/orgs","repos_url":"https://api.github.com/users/lukebakken/repos","events_url":"https://api.github.com/users/lukebakken/events{/privacy}","received_events_url":"https://api.github.com/users/lukebakken/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":9,"state":"open","created_at":"2016-03-02T16:02:46Z","updated_at":"2016-04-25T22:43:04Z","due_on":null,"closed_at":null},"comments":10,"created_at":"2016-04-12T16:39:13Z","updated_at":"2016-05-18T01:09:00Z","closed_at":"2016-04-15T18:57:15Z","body":"We are using a load balancer (an F5) in our environment to proxy requests to the Riak servers. Our configuration looks like this:\r\n\r\n```xml\r\n<riakConfig nodePollTime=\"5000\" defaultRetryWaitTime=\"200\" defaultRetryCount=\"3\">\r\n  <nodes>\r\n    <node name=\"dev1\" hostAddress=\"RIAK-LB\" pbcPort=\"8087\" poolSize=\"10\" />\r\n  </nodes>\r\n</riakConfig>\r\n```\r\n\r\nThe load balancer sits in front of 5 Riak servers. Under normal operation this works correctly. However, when we stop one of the Riak nodes, clients that have a connection to that server mark the node 'dev1' as 'inactive'. Since this is the only node available, further calls result in an error of \"Cluster Unavailable\" being returned. This error continues until the background polling thread detects that a connection can be made, which can take up to 5 seconds.\r\n\r\nWe have also tried setting the configuration like this:\r\n\r\n```xml\r\n<riakConfig nodePollTime=\"5000\" defaultRetryWaitTime=\"200\" defaultRetryCount=\"3\">\r\n  <nodes>\r\n    <node name=\"dev1\" hostAddress=\"RIAK-LB\" pbcPort=\"8087\" poolSize=\"10\" />\r\n    <node name=\"dev2\" hostAddress=\"RIAK-LB\" pbcPort=\"8087\" poolSize=\"10\" />\r\n    <node name=\"dev3\" hostAddress=\"RIAK-LB\" pbcPort=\"8087\" poolSize=\"10\" />\r\n    <node name=\"dev4\" hostAddress=\"RIAK-LB\" pbcPort=\"8087\" poolSize=\"10\" />\r\n    <node name=\"dev5\" hostAddress=\"RIAK-LB\" pbcPort=\"8087\" poolSize=\"10\" />\r\n  </nodes>\r\n</riakConfig>\r\n```\r\n\r\nIn this case we'll only get the cluster unavailable if all 5 nodes are connected to the same physical machine. Since our load balancer uses a round robin this is unlikely, but it's not guaranteed to work because requests from other clients on the network also hit the load balancer.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/basho/riak-dotnet-client/issues/comments/219898866","html_url":"https://github.com/basho/riak-dotnet-client/issues/306#issuecomment-219898866","issue_url":"https://api.github.com/repos/basho/riak-dotnet-client/issues/306","id":219898866,"user":{"login":"lukebakken","id":514926,"avatar_url":"https://avatars.githubusercontent.com/u/514926?v=3","gravatar_id":"","url":"https://api.github.com/users/lukebakken","html_url":"https://github.com/lukebakken","followers_url":"https://api.github.com/users/lukebakken/followers","following_url":"https://api.github.com/users/lukebakken/following{/other_user}","gists_url":"https://api.github.com/users/lukebakken/gists{/gist_id}","starred_url":"https://api.github.com/users/lukebakken/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukebakken/subscriptions","organizations_url":"https://api.github.com/users/lukebakken/orgs","repos_url":"https://api.github.com/users/lukebakken/repos","events_url":"https://api.github.com/users/lukebakken/events{/privacy}","received_events_url":"https://api.github.com/users/lukebakken/received_events","type":"User","site_admin":false},"created_at":"2016-05-18T01:09:00Z","updated_at":"2016-05-18T01:09:00Z","body":"@rob-somerville I am releasing `2.3.0-beta3` right now. It moves the `externalLoadBalancer` setting to the node configuration, from the cluster one. There are cases when people use multiple load balancers. My testing passes, if you could try it out I will get the final release out when I hear back. Thanks!!!"}}