private Address GetRandomAddress() { var member = _client.GetLoadBalancer().Next(); if (member != null) { return(member.GetAddress()); } throw new IOException("Could not find any available address"); }
public TransactionContextProxy(HazelcastClient client, TransactionOptions options) { _client = client; var clusterService = (ClientClusterService)client.GetClientClusterService(); TxnOwnerNode = client.GetClientConfig().GetNetworkConfig().IsSmartRouting() ? client.GetLoadBalancer().Next(): clusterService.GetMember(clusterService.GetOwnerConnectionAddress()); if (TxnOwnerNode == null) { throw new HazelcastException("Could not find matching member"); } _transaction = new TransactionProxy(client, options, TxnOwnerNode); }
private Address FindNextAddressToCreateARequest() { var clusterSize = _client.GetClientClusterService().GetSize(); IMember liteMember = null; var loadBalancer = _client.GetLoadBalancer(); for (var i = 0; i < clusterSize; i++) { var member = loadBalancer.Next(); if (member != null && !member.IsLiteMember) { return(member.GetAddress()); } if (liteMember == null) { liteMember = member; } } return(liteMember != null?liteMember.GetAddress() : null); }