Search in sources :

Example 1 with DBModel

use of com.ctrip.platform.dal.common.enums.DBModel in project dal by ctripcorp.

the class ClusterConfigAdapter method buildMultiHostClusterConfig.

private ClusterConfig buildMultiHostClusterConfig(MultiHostConnectionStringConfigure configure) {
    ClusterConfigWithNoVersion clusterConfig = new ClusterConfigWithNoVersion(configure.getName(), ClusterType.NORMAL, DatabaseCategory.MYSQL);
    DatabaseShardConfigImpl databaseShardConfig = new DatabaseShardConfigImpl(clusterConfig, 0);
    List<HostSpec> hosts = configure.getHosts();
    hosts.forEach(host -> {
        DatabaseConfigImpl databaseConfig = new DatabaseConfigImpl(databaseShardConfig);
        databaseConfig.setIp(host.host());
        databaseConfig.setPort(host.port());
        databaseConfig.setZone(host.zone());
        databaseConfig.setDbName(configure.getDbName());
        databaseConfig.setUid(configure.getUserName());
        databaseConfig.setPwd(configure.getPassword());
        databaseShardConfig.addDatabaseConfig(databaseConfig);
    });
    clusterConfig.addDatabaseShardConfig(databaseShardConfig);
    DBModel dbModel = configure.getDbModel();
    String routeStrategyName = DBModel.MGR == dbModel ? RouteStrategyEnum.WRITE_ORDERED.getAlias() : RouteStrategyEnum.WRITE_CURRENT_ZONE_FIRST.getAlias();
    DefaultClusterRouteStrategyConfig routeStrategy = new DefaultClusterRouteStrategyConfig(routeStrategyName);
    if (configure.getZonesPriority() != null)
        routeStrategy.setProperty(MultiMasterStrategy.ZONES_PRIORITY, configure.getZonesPriority());
    if (configure.getFailoverTimeMS() != null)
        routeStrategy.setProperty(MultiMasterStrategy.FAILOVER_TIME_MS, String.valueOf(configure.getFailoverTimeMS()));
    if (configure.getBlacklistTimeoutMS() != null)
        routeStrategy.setProperty(MultiMasterStrategy.BLACKLIST_TIMEOUT_MS, String.valueOf(configure.getBlacklistTimeoutMS()));
    if (configure.getFixedValidatePeriodMS() != null)
        routeStrategy.setProperty(MultiMasterStrategy.FIXED_VALIDATE_PERIOD_MS, String.valueOf(configure.getFixedValidatePeriodMS()));
    clusterConfig.setRouteStrategyConfig(routeStrategy);
    clusterConfig.setCustomizedOption(new DefaultDalConfigCustomizedOption());
    return clusterConfig;
}
Also used : DefaultClusterRouteStrategyConfig(com.ctrip.framework.dal.cluster.client.multihost.DefaultClusterRouteStrategyConfig) DatabaseShardConfigImpl(com.ctrip.framework.dal.cluster.client.config.DatabaseShardConfigImpl) DBModel(com.ctrip.platform.dal.common.enums.DBModel) DatabaseConfigImpl(com.ctrip.framework.dal.cluster.client.config.DatabaseConfigImpl) HostSpec(com.ctrip.framework.dal.cluster.client.base.HostSpec)

Aggregations

HostSpec (com.ctrip.framework.dal.cluster.client.base.HostSpec)1 DatabaseConfigImpl (com.ctrip.framework.dal.cluster.client.config.DatabaseConfigImpl)1 DatabaseShardConfigImpl (com.ctrip.framework.dal.cluster.client.config.DatabaseShardConfigImpl)1 DefaultClusterRouteStrategyConfig (com.ctrip.framework.dal.cluster.client.multihost.DefaultClusterRouteStrategyConfig)1 DBModel (com.ctrip.platform.dal.common.enums.DBModel)1