internal static MemberAttributeConfig BuildMemberAttributesForCore(MemberId myself, Config config) { MemberAttributeConfig memberAttributeConfig = new MemberAttributeConfig(); memberAttributeConfig.setStringAttribute(MEMBER_UUID, myself.Uuid.ToString()); AdvertisedSocketAddress discoveryAddress = config.Get(CausalClusteringSettings.discovery_advertised_address); memberAttributeConfig.setStringAttribute(DISCOVERY_SERVER, discoveryAddress.ToString()); AdvertisedSocketAddress transactionSource = config.Get(CausalClusteringSettings.transaction_advertised_address); memberAttributeConfig.setStringAttribute(TRANSACTION_SERVER, transactionSource.ToString()); AdvertisedSocketAddress raftAddress = config.Get(CausalClusteringSettings.raft_advertised_address); memberAttributeConfig.setStringAttribute(RAFT_SERVER, raftAddress.ToString()); ClientConnectorAddresses clientConnectorAddresses = ClientConnectorAddresses.ExtractFromConfig(config); memberAttributeConfig.setStringAttribute(CLIENT_CONNECTOR_ADDRESSES, clientConnectorAddresses.ToString()); memberAttributeConfig.setBooleanAttribute(REFUSE_TO_BE_LEADER_KEY, config.Get(refuse_to_be_leader)); memberAttributeConfig.setStringAttribute(MEMBER_DB_NAME, config.Get(CausalClusteringSettings.database)); return(memberAttributeConfig); }
public ReadReplicaInfo(ClientConnectorAddresses clientConnectorAddresses, AdvertisedSocketAddress catchupServerAddress, ISet <string> groups, string dbName) { this._clientConnectorAddresses = clientConnectorAddresses; this._catchupServerAddress = catchupServerAddress; this._groups = groups; this._dbName = dbName; }
/// <summary> /// Given a hazelcast member id and a set of non-null attribute maps, this method builds a discovery representation of a read replica /// (i.e. `Pair<MemberId,ReadReplicaInfo>`). Any missing attributes which are missing for a given hazelcast member id are logged and this /// method will return null. /// </summary> private static Pair <MemberId, ReadReplicaInfo> BuildReadReplicaFromAttrMap(string hzId, IDictionary <string, IMap <string, string> > simpleAttrMaps, MultiMap <string, string> serverGroupsMap, Log log) { //JAVA TO C# CONVERTER TODO TASK: Most Java stream collectors are not converted by Java to C# Converter: IDictionary <string, string> memberAttrs = simpleAttrMaps.SetOfKeyValuePairs().Select(e => Pair.of(e.Key, e.Value.get(hzId))).Where(p => HasAttribute(p, hzId, log)).collect(CollectorsUtil.pairsToMap()); //JAVA TO C# CONVERTER TODO TASK: There is no .NET equivalent to the java.util.Collection 'containsAll' method: if (!memberAttrs.Keys.containsAll(RrAttrKeys)) { return(null); } ICollection <string> memberServerGroups = serverGroupsMap.get(hzId); if (memberServerGroups == null) { log.Warn("Missing attribute %s for read replica with hz id %s", SERVER_GROUPS_MULTIMAP, hzId); return(null); } ClientConnectorAddresses boltAddresses = ClientConnectorAddresses.FromString(memberAttrs[READ_REPLICA_BOLT_ADDRESS_MAP]); //JAVA TO C# CONVERTER TODO TASK: Method reference constructor syntax is not converted by Java to C# Converter: AdvertisedSocketAddress catchupAddress = socketAddress(memberAttrs[READ_REPLICA_TRANSACTION_SERVER_ADDRESS_MAP], AdvertisedSocketAddress::new); MemberId memberId = new MemberId(System.Guid.Parse(memberAttrs[READ_REPLICA_MEMBER_ID_MAP])); string memberDbName = memberAttrs[READ_REPLICAS_DB_NAME_MAP]; ISet <string> serverGroupSet = asSet(memberServerGroups); ReadReplicaInfo rrInfo = new ReadReplicaInfo(boltAddresses, catchupAddress, serverGroupSet, memberDbName); return(Pair.of(memberId, rrInfo)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldSerializeToString() public virtual void ShouldSerializeToString() { // given ClientConnectorAddresses connectorAddresses = new ClientConnectorAddresses(new IList <ConnectorUri> { new ConnectorUri(bolt, new AdvertisedSocketAddress("host", 1)), new ConnectorUri(http, new AdvertisedSocketAddress("host", 2)), new ConnectorUri(https, new AdvertisedSocketAddress("host", 3)), new ConnectorUri(bolt, new AdvertisedSocketAddress("::1", 4)), new ConnectorUri(http, new AdvertisedSocketAddress("::", 5)), new ConnectorUri(https, new AdvertisedSocketAddress("fe80:1:2::3", 6)) }); string expectedString = "bolt://host:1,http://host:2,https://host:3,bolt://[::1]:4,http://[::]:5,https://[fe80:1:2::3]:6"; // when string connectorAddressesString = connectorAddresses.ToString(); // then assertEquals(expectedString, connectorAddressesString); // when ClientConnectorAddresses @out = ClientConnectorAddresses.FromString(connectorAddressesString); // then assertEquals(connectorAddresses, @out); }
public static ReadReplicaInfo AddressesForReadReplica(int id) { AdvertisedSocketAddress clientConnectorSocketAddress = new AdvertisedSocketAddress("localhost", 6000 + id); ClientConnectorAddresses clientConnectorAddresses = new ClientConnectorAddresses(singletonList(new ClientConnectorAddresses.ConnectorUri(bolt, clientConnectorSocketAddress))); AdvertisedSocketAddress catchupSocketAddress = new AdvertisedSocketAddress("localhost", 4000 + id); return(new ReadReplicaInfo(clientConnectorAddresses, catchupSocketAddress, asSet("replica", "replica" + id), "default")); }
internal SharedDiscoveryReadReplicaClient(SharedDiscoveryService sharedDiscoveryService, Config config, MemberId memberId, LogProvider logProvider) { this._sharedDiscoveryService = sharedDiscoveryService; this._dbName = config.Get(CausalClusteringSettings.database); //JAVA TO C# CONVERTER TODO TASK: Method reference constructor syntax is not converted by Java to C# Converter: this._addresses = new ReadReplicaInfo(ClientConnectorAddresses.ExtractFromConfig(config), socketAddress(config.Get(CausalClusteringSettings.transaction_advertised_address).ToString(), AdvertisedSocketAddress::new), _dbName); this._memberId = memberId; this._log = logProvider.getLog(this.GetType()); }
private ReadReplicaInfo GenerateReadReplicaInfo() { System.Func <int> portFactory = () => ThreadLocalRandom.current().Next(1000, 10000); IList <ClientConnectorAddresses.ConnectorUri> connectorUris = singletonList(new ClientConnectorAddresses.ConnectorUri(ClientConnectorAddresses.Scheme.Bolt, new AdvertisedSocketAddress("losthost", portFactory()))); ClientConnectorAddresses addresses = new ClientConnectorAddresses(connectorUris); return(new ReadReplicaInfo(addresses, new AdvertisedSocketAddress("localhost", portFactory()), _groups, "foo")); }
public CoreServerInfo(AdvertisedSocketAddress raftServer, AdvertisedSocketAddress catchupServer, ClientConnectorAddresses clientConnectorAddresses, ISet <string> groups, string dbName, bool refuseToBeLeader) { this._raftServer = raftServer; this._catchupServer = catchupServer; this._clientConnectorAddresses = clientConnectorAddresses; this._groups = groups; this._dbName = dbName; this._refuseToBeLeader = refuseToBeLeader; }
public static ReadReplicaInfo From(Config config) { AdvertisedSocketAddress transactionSource = config.Get(CausalClusteringSettings.transaction_advertised_address); ClientConnectorAddresses clientConnectorAddresses = ClientConnectorAddresses.ExtractFromConfig(config); string dbName = config.Get(CausalClusteringSettings.database); IList <string> groupList = config.Get(CausalClusteringSettings.server_groups); ISet <string> groups = new HashSet <string>(groupList); return(new ReadReplicaInfo(clientConnectorAddresses, transactionSource, groups, dbName)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldSerializeWithNoHttpsAddress() public virtual void ShouldSerializeWithNoHttpsAddress() { // given ClientConnectorAddresses connectorAddresses = new ClientConnectorAddresses(asList(new ConnectorUri(bolt, new AdvertisedSocketAddress("host", 1)), new ConnectorUri(http, new AdvertisedSocketAddress("host", 2)) )); // when ClientConnectorAddresses @out = ClientConnectorAddresses.FromString(connectorAddresses.ToString()); // then assertEquals(connectorAddresses, @out); }
public static CoreServerInfo From(Config config) { AdvertisedSocketAddress raftAddress = config.Get(CausalClusteringSettings.raft_advertised_address); AdvertisedSocketAddress transactionSource = config.Get(CausalClusteringSettings.transaction_advertised_address); ClientConnectorAddresses clientConnectorAddresses = ClientConnectorAddresses.ExtractFromConfig(config); string dbName = config.Get(CausalClusteringSettings.database); IList <string> groupList = config.Get(CausalClusteringSettings.server_groups); ISet <string> groups = new HashSet <string>(groupList); bool refuseToBeLeader = config.Get(CausalClusteringSettings.refuse_to_be_leader); return(new CoreServerInfo(raftAddress, transactionSource, clientConnectorAddresses, groups, dbName, refuseToBeLeader)); }
public override bool Equals(object o) { if (this == o) { return(true); } if (o == null || this.GetType() != o.GetType()) { return(false); } ClientConnectorAddresses that = ( ClientConnectorAddresses )o; return(Objects.Equals(_connectorUris, that._connectorUris)); }
public HazelcastClient(HazelcastConnector connector, JobScheduler scheduler, LogProvider logProvider, Config config, MemberId myself) { this._hzInstance = new RobustHazelcastWrapper(connector); this._config = config; this._log = logProvider.getLog(this.GetType()); this._scheduler = new RobustJobSchedulerWrapper(scheduler, _log); this._connectorAddresses = ClientConnectorAddresses.ExtractFromConfig(config); this._transactionSource = config.Get(CausalClusteringSettings.transaction_advertised_address); this._timeToLive = config.Get(CausalClusteringSettings.read_replica_time_to_live).toMillis(); this._refreshPeriod = config.Get(CausalClusteringSettings.cluster_topology_refresh).toMillis(); this._myself = myself; this._groups = config.Get(CausalClusteringSettings.server_groups); this._topologyServiceRetryStrategy = ResolveStrategy(_refreshPeriod, logProvider); this._dbName = config.Get(CausalClusteringSettings.database); this._coreRoles = emptyMap(); }
public override ClientConnectorAddresses ClientConnectorAddresses() { return(ClientConnectorAddresses.ExtractFromConfig(_memberConfig)); }
internal static IDictionary <MemberId, CoreServerInfo> ToCoreMemberMap(ISet <Member> members, Log log, HazelcastInstance hazelcastInstance) { IDictionary <MemberId, CoreServerInfo> coreMembers = new Dictionary <MemberId, CoreServerInfo>(); MultiMap <string, string> serverGroupsMMap = hazelcastInstance.getMultiMap(SERVER_GROUPS_MULTIMAP); foreach (Member member in members) { IDictionary <string, string> attrMap = new Dictionary <string, string>(); bool incomplete = false; foreach (string attrKey in CoreAttrKeys) { string attrValue = member.getStringAttribute(attrKey); if (string.ReferenceEquals(attrValue, null)) { log.Warn("Missing member attribute '%s' for member %s", attrKey, member); incomplete = true; } else { attrMap[attrKey] = attrValue; } } if (incomplete) { continue; } //JAVA TO C# CONVERTER TODO TASK: Method reference constructor syntax is not converted by Java to C# Converter: CoreServerInfo coreServerInfo = new CoreServerInfo(socketAddress(attrMap[RAFT_SERVER], AdvertisedSocketAddress::new), socketAddress(attrMap[TRANSACTION_SERVER], AdvertisedSocketAddress::new), ClientConnectorAddresses.FromString(attrMap[CLIENT_CONNECTOR_ADDRESSES]), asSet(serverGroupsMMap.get(attrMap[MEMBER_UUID])), attrMap[MEMBER_DB_NAME], member.getBooleanAttribute(REFUSE_TO_BE_LEADER_KEY)); MemberId memberId = new MemberId(System.Guid.Parse(attrMap[MEMBER_UUID])); coreMembers[memberId] = coreServerInfo; } return(coreMembers); }
public ReadReplicaInfo(ClientConnectorAddresses clientConnectorAddresses, AdvertisedSocketAddress catchupServerAddress, string dbName) : this(clientConnectorAddresses, catchupServerAddress, emptySet(), dbName) { }
public CoreServerInfo(AdvertisedSocketAddress raftServer, AdvertisedSocketAddress catchupServer, ClientConnectorAddresses clientConnectors, string dbName, bool refuseToBeLeader) : this(raftServer, catchupServer, clientConnectors, emptySet(), dbName, refuseToBeLeader) { }
private void LogConnectionInfo(ICollection <string> initialMembers) { UserLog.info("My connection info: " + "[\n\tDiscovery: listen=%s, advertised=%s," + "\n\tTransaction: listen=%s, advertised=%s, " + "\n\tRaft: listen=%s, advertised=%s, " + "\n\tClient Connector Addresses: %s" + "\n]", Config.get(discovery_listen_address), Config.get(CausalClusteringSettings.discovery_advertised_address), Config.get(CausalClusteringSettings.transaction_listen_address), Config.get(CausalClusteringSettings.transaction_advertised_address), Config.get(CausalClusteringSettings.raft_listen_address), Config.get(CausalClusteringSettings.raft_advertised_address), ClientConnectorAddresses.ExtractFromConfig(Config)); UserLog.info("Discovering other core members in initial members set: " + initialMembers); }