Exemplo n.º 1
0
        //private static Dictionary<string, ReplicationServerSelector> selectors = new Dictionary<string, ReplicationServerSelector>();

        static ReplicationManager()
        {
            Groups = groups;

            //#if !NETSTANDARD1_6
            // load up our selectors
            //if (MySqlConfiguration.Settings == null) return;

            //foreach (var group in MySqlConfiguration.Settings.Replication.ServerGroups)
            //{
            //    ReplicationServerGroup g = AddGroup(group.Name, group.GroupType, group.RetryTime);
            //    foreach (var server in group.Servers)
            //        g.AddServer(server.Name, server.IsMaster, server.ConnectionString);
            //}

            string databaseServerName  = GetStringValue("DatabaseServerName", "mysql");
            var    databaseServerNames = databaseServerName.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();

            //如果存在多个服务器,则为mysql组复制
            if (databaseServerNames.Count <= 1)
            {
                return;
            }
            //打乱server信息
            List <string> newDatabaseServerNames = new List <string>();
            Random        random     = new Random();
            int           totalCount = databaseServerNames.Count;

            while (newDatabaseServerNames.Count < totalCount)
            {
                int index = random.Next(totalCount - newDatabaseServerNames.Count);
                if (!newDatabaseServerNames.Contains(databaseServerNames[index]))
                {
                    newDatabaseServerNames.Add(databaseServerNames[index]);
                    databaseServerNames.RemoveAt(index);
                }
            }

            string databaseGroupName = GetStringValue("DatabaseGroupName", "MySQLGroupReplication");
            ReplicationServerGroup g = AddGroup(databaseGroupName, "", 60);

            foreach (var serverName in newDatabaseServerNames)
            {
                bool   isMaster         = true;
                string connectionString = GenerateMySqlConnectionString(serverName);
                g.AddServer(serverName, isMaster, connectionString);
            }
            //#endif
        }
Exemplo n.º 2
0
 static ReplicationManager()
 {
     ReplicationManager.groups = new List <ReplicationServerGroup>();
     ReplicationManager.Groups = ReplicationManager.groups;
     if (MySqlConfiguration.Settings == null)
     {
         return;
     }
     foreach (ReplicationServerGroupConfigurationElement current in MySqlConfiguration.Settings.Replication.ServerGroups)
     {
         ReplicationServerGroup replicationServerGroup = ReplicationManager.AddGroup(current.Name, current.GroupType, current.RetryTime);
         foreach (ReplicationServerConfigurationElement current2 in current.Servers)
         {
             replicationServerGroup.AddServer(current2.Name, current2.IsMaster, current2.ConnectionString);
         }
     }
 }
Exemplo n.º 3
0
        //private static Dictionary<string, ReplicationServerSelector> selectors = new Dictionary<string, ReplicationServerSelector>();

        static ReplicationManager()
        {
            Groups = groups;

            // load up our selectors
            if (MySqlConfiguration.Settings == null)
            {
                return;
            }

            foreach (var group in MySqlConfiguration.Settings.Replication.ServerGroups)
            {
                ReplicationServerGroup g = AddGroup(group.Name, group.GroupType, group.RetryTime);
                foreach (var server in group.Servers)
                {
                    g.AddServer(server.Name, server.IsSource, server.ConnectionString);
                }
            }
        }
        //private static Dictionary<string, ReplicationServerSelector> selectors = new Dictionary<string, ReplicationServerSelector>();

        static ReplicationManager()
        {
            Groups = groups;

#if !CF && !RT
            // load up our selectors
            if (MySqlConfiguration.Settings == null)
            {
                return;
            }

            foreach (var group in MySqlConfiguration.Settings.Replication.ServerGroups)
            {
                ReplicationServerGroup g = AddGroup(group.Name, group.GroupType);
                foreach (var server in group.Servers)
                {
                    g.AddServer(server.Name, server.IsMaster, server.ConnectionString);
                }
            }
#endif
        }