Java源码示例:com.datastax.driver.core.ProtocolOptions

示例1
private void configureHosts() {
    final String hostConfiguration = (String) configuration.get(TRIDENT_CASSANDRA_CQL_HOSTS);
    final String[] hosts = hostConfiguration.split(",");
    final List<InetSocketAddress> sockets = new ArrayList<InetSocketAddress>();
    for (final String host : hosts) {
        if(StringUtils.contains(host, ":")) {
            final String hostParts [] = StringUtils.split(host, ":");
            sockets.add(new InetSocketAddress(hostParts[0], Integer.valueOf(hostParts[1])));
            LOG.debug("Configuring [" + host + "] with port [" + hostParts[1] + "]");
        } else {
            sockets.add(new InetSocketAddress(host, ProtocolOptions.DEFAULT_PORT));
            LOG.debug("Configuring [" + host + "] with port [" + ProtocolOptions.DEFAULT_PORT + "]");
        }
    }
    builder = builder.addContactPointsWithPorts(sockets);
}
 
示例2
@Test
public void testSaveToCassandra() throws Exception {
    LOGGER.debug("Connecting to Cassandra Quorum: " + conf.getStringList("cassandra.hosts").toString());

    SaveToCassandraActionExecutionFunction func = new SaveToCassandraActionExecutionFunction(
            getHostsStringFromList(conf.getStringList("cassandra.hosts")), ProtocolOptions.DEFAULT_PORT, 50,  BatchStatement.Type.UNLOGGED);

    List<StratioStreamingMessage> list = new ArrayList<StratioStreamingMessage>();
    message.setColumns(StreamsHelper.COLUMNS3);
    list.add(message);

    Exception ex = null;
    try {
        func.process(list);

    } catch (Exception e) {
        ex = e;
        ex.printStackTrace();
    }

    assertNull("Expected null value", ex);
}
 
示例3
/**
 * Uses a Cluster.Builder to create a Cassandra cluster reference using the given parameters
 *
 * @param contactPoints The contact points (hostname:port list of Cassandra nodes)
 * @param sslContext    The SSL context (used for secure connections)
 * @param username      The username for connection authentication
 * @param password      The password for connection authentication
 * @param compressionType Enable compression at transport-level requests and responses.
 * @return A reference to the Cluster object associated with the given Cassandra configuration
 */
protected Cluster createCluster(List<InetSocketAddress> contactPoints, SSLContext sslContext,
                                String username, String password, String compressionType) {
    Cluster.Builder builder = Cluster.builder().addContactPointsWithPorts(contactPoints);
    if (sslContext != null) {
        JdkSSLOptions sslOptions = JdkSSLOptions.builder()
                .withSSLContext(sslContext)
                .build();
        builder = builder.withSSL(sslOptions);
        if(ProtocolOptions.Compression.SNAPPY.equals(compressionType)) {
            builder = builder.withCompression(ProtocolOptions.Compression.SNAPPY);
        } else if(ProtocolOptions.Compression.LZ4.equals(compressionType)) {
            builder = builder.withCompression(ProtocolOptions.Compression.LZ4);
        }
    }
    if (username != null && password != null) {
        builder = builder.withCredentials(username, password);
    }
    return builder.build();
}
 
示例4
/**
 * Sets compression algorithm to use for the transport.
 *
 * @param compression Compression algorithm.
 */
public void setCompression(String compression) {
    this.compression = compression == null || compression.trim().isEmpty() ? null : compression.trim();

    try {
        if (this.compression != null)
            ProtocolOptions.Compression.valueOf(this.compression);
    }
    catch (Throwable e) {
        throw new IgniteException("Incorrect compression '" + compression + "' specified for Cassandra connection", e);
    }

    invalidate();
}
 
示例5
public CassandraMetricBatch(Metadata metadata, ProtocolOptions protocol, CodecRegistry codec,
    TokenAwarePolicy lbPolicy, int batchLimit) {
  this.protocol = protocol;
  this.codec = codec;
  this.metadata = metadata;
  this.policy = lbPolicy;
  metricQueries = new HashMap<>();
  this.batchLimit = batchLimit;

  metricQueries = new HashMap<>();
  dimensionQueries = new HashMap<>();
  dimensionMetricQueries = new HashMap<>();
  metricDimensionQueries = new HashMap<>();
  measurementQueries = new HashMap<>();
}
 
示例6
public static Cluster getInputCluster(String[] hosts, Configuration conf)
{
    int port = getInputNativePort(conf);
    Optional<AuthProvider> authProvider = getAuthProvider(conf);
    Optional<SSLOptions> sslOptions = getSSLOptions(conf);
    Optional<Integer> protocolVersion = getProtocolVersion(conf);
    LoadBalancingPolicy loadBalancingPolicy = getReadLoadBalancingPolicy(conf, hosts);
    SocketOptions socketOptions = getReadSocketOptions(conf);
    QueryOptions queryOptions = getReadQueryOptions(conf);
    PoolingOptions poolingOptions = getReadPoolingOptions(conf);
    
    Cluster.Builder builder = Cluster.builder()
                                     .addContactPoints(hosts)
                                     .withPort(port)
                                     .withCompression(ProtocolOptions.Compression.NONE);

    if (authProvider.isPresent())
        builder.withAuthProvider(authProvider.get());
    if (sslOptions.isPresent())
        builder.withSSL(sslOptions.get());

    if (protocolVersion.isPresent()) {
        builder.withProtocolVersion(protocolVersion.get());
    }
    builder.withLoadBalancingPolicy(loadBalancingPolicy)
           .withSocketOptions(socketOptions)
           .withQueryOptions(queryOptions)
           .withPoolingOptions(poolingOptions);

    return builder.build();
}
 
示例7
public ConstructorConfiguredCqlClientFactory(String hosts, String clusterName, ConsistencyLevel clusterConsistency,
                        ConsistencyLevel conditionalUpdateConsistency, ProtocolOptions.Compression compression) {
    this.hosts = hosts.split(",");
    this.clusterConsistencyLevel = clusterConsistency;
    if (conditionalUpdateConsistency != null){
        this.serialConsistencyLevel = conditionalUpdateConsistency;
    }
    if (clusterName != null) {
        this.clusterName = clusterName;
    }
    this.compression = compression;
}
 
示例8
public Cluster.Builder getClusterBuilder() {

        final List<InetSocketAddress> sockets = new ArrayList<InetSocketAddress>();
        for (String host : hosts) {
            if(StringUtils.contains(host, ":")) {
                String hostParts [] = StringUtils.split(host, ":");
                sockets.add(new InetSocketAddress(hostParts[0], Integer.valueOf(hostParts[1])));
                LOG.debug("Connecting to [" + host + "] with port [" + hostParts[1] + "]");
            } else {
                sockets.add(new InetSocketAddress(host, ProtocolOptions.DEFAULT_PORT));
                LOG.debug("Connecting to [" + host + "] with port [" + ProtocolOptions.DEFAULT_PORT + "]");
            }
        }

        Cluster.Builder builder = Cluster.builder().addContactPointsWithPorts(sockets).withCompression(compression);
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.setConsistencyLevel(clusterConsistencyLevel);
        queryOptions.setSerialConsistencyLevel(serialConsistencyLevel);
        builder = builder.withQueryOptions(queryOptions);

        if (StringUtils.isNotEmpty(clusterName)) {
            builder = builder.withClusterName(clusterName);
        }

        return builder;

    }
 
示例9
@Test
public void testGetClusterBuilder() throws Exception {
    final Map<Object, Object> configuration = new HashMap<Object,Object>();
    configuration.put(MapConfiguredCqlClientFactory.TRIDENT_CASSANDRA_CQL_HOSTS, HOSTS);
    configuration.put(MapConfiguredCqlClientFactory.TRIDENT_CASSANDRA_CLUSTER_NAME, CLUSTER_NAME);
    configuration.put(MapConfiguredCqlClientFactory.TRIDENT_CASSANDRA_READ_TIMEOUT, READ_TIMEOUT);
    configuration.put(MapConfiguredCqlClientFactory.TRIDENT_CASSANDRA_CONNECT_TIMEOUT, CONNECT_TIMEOUT);
    configuration.put(MapConfiguredCqlClientFactory.TRIDENT_CASSANDRA_LOCAL_DATA_CENTER_NAME, DATA_CENTER_NAME);
    configuration.put(MapConfiguredCqlClientFactory.TRIDENT_CASSANDRA_CONSISTENCY, DEFAULT_CONSISTENCY_LEVEL.name());
    configuration.put(MapConfiguredCqlClientFactory.TRIDENT_CASSANDRA_SERIAL_CONSISTENCY, DEFAULT_SERIAL_CONSISTENCY_LEVEL.name());

    final CqlClientFactory factory =
            new MapConfiguredCqlClientFactory(configuration);

    final Cluster.Builder clusterBuilder = factory.getClusterBuilder();
    Assert.assertEquals(CLUSTER_NAME, clusterBuilder.getClusterName());
    final InetSocketAddress first = clusterBuilder.getContactPoints().get(0);
    final InetSocketAddress second = clusterBuilder.getContactPoints().get(1);
    Assert.assertEquals("localhost", first.getHostName());
    Assert.assertEquals(9042, first.getPort());
    Assert.assertEquals("remotehost", second.getHostName());
    Assert.assertEquals(1234, second.getPort());
    Assert.assertEquals(Integer.parseInt(CONNECT_TIMEOUT), clusterBuilder.getConfiguration().getSocketOptions().getConnectTimeoutMillis());
    Assert.assertEquals(Integer.parseInt(READ_TIMEOUT), clusterBuilder.getConfiguration().getSocketOptions().getReadTimeoutMillis());
    Assert.assertEquals(DEFAULT_CONSISTENCY_LEVEL, clusterBuilder.getConfiguration().getQueryOptions().getConsistencyLevel());
    Assert.assertEquals(DEFAULT_SERIAL_CONSISTENCY_LEVEL, clusterBuilder.getConfiguration().getQueryOptions().getSerialConsistencyLevel());
    Assert.assertEquals(ProtocolOptions.Compression.NONE, clusterBuilder.getConfiguration().getProtocolOptions().getCompression());
}
 
示例10
private Cluster createCluster(List<InetSocketAddress> contactPoints, SSLContext sslContext,
                              String username, String password, String compressionType,
                              Optional<Integer> readTimeoutMillisOptional, Optional<Integer> connectTimeoutMillisOptional) {
    Cluster.Builder builder = Cluster.builder().addContactPointsWithPorts(contactPoints);

    if (sslContext != null) {
        JdkSSLOptions sslOptions = JdkSSLOptions.builder()
                .withSSLContext(sslContext)
                .build();
        builder = builder.withSSL(sslOptions);
    }

    if (username != null && password != null) {
        builder = builder.withCredentials(username, password);
    }

    if(ProtocolOptions.Compression.SNAPPY.equals(compressionType)) {
        builder = builder.withCompression(ProtocolOptions.Compression.SNAPPY);
    } else if(ProtocolOptions.Compression.LZ4.equals(compressionType)) {
        builder = builder.withCompression(ProtocolOptions.Compression.LZ4);
    }

    SocketOptions socketOptions = new SocketOptions();
    readTimeoutMillisOptional.ifPresent(socketOptions::setReadTimeoutMillis);
    connectTimeoutMillisOptional.ifPresent(socketOptions::setConnectTimeoutMillis);

    builder.withSocketOptions(socketOptions);

    return builder.build();
}
 
示例11
@Test
public void shouldCreateClusterWithConfig() throws Exception {

	CassandraServiceInfo info = new CassandraServiceInfo("local",
			Collections.singletonList("127.0.0.1"), 9142);

	CassandraClusterConfig config = new CassandraClusterConfig();
	config.setCompression(ProtocolOptions.Compression.NONE);
	config.setPoolingOptions(new PoolingOptions().setPoolTimeoutMillis(1234));
	config.setQueryOptions(new QueryOptions());
	config.setProtocolVersion(ProtocolVersion.NEWEST_SUPPORTED);
	config.setLoadBalancingPolicy(new RoundRobinPolicy());
	config.setReconnectionPolicy(new ConstantReconnectionPolicy(1));
	config.setRetryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE);
	config.setSocketOptions(new SocketOptions());

	Cluster cluster = creator.create(info, config);

	Configuration configuration = cluster.getConfiguration();

	assertThat(configuration.getProtocolOptions().getCompression(),
			is(config.getCompression()));
	assertThat(configuration.getQueryOptions(), is(config.getQueryOptions()));
	assertThat(configuration.getSocketOptions(), is(config.getSocketOptions()));

	Policies policies = configuration.getPolicies();
	assertThat(policies.getLoadBalancingPolicy(),
			is(config.getLoadBalancingPolicy()));
	assertThat(policies.getReconnectionPolicy(), is(config.getReconnectionPolicy()));
	assertThat(policies.getRetryPolicy(), is(config.getRetryPolicy()));
}
 
示例12
/**
	 * 描述: 初始化配置
	 * 时间: 2017年11月15日 上午11:25:07
	 * @author yi.zhang
	 * @param servers	服务地址
	 * @param keyspace	命名空间
	 * @param username	账号
	 * @param password	密码
	 */
	public void init(String servers,String keyspace,String username,String password) {
		try {
			// socket 链接配置
			SocketOptions socket = new SocketOptions();
			socket.setKeepAlive(true);
			socket.setReceiveBufferSize(1024* 1024);
			socket.setSendBufferSize(1024* 1024);
			socket.setConnectTimeoutMillis(5 * 1000);
			socket.setReadTimeoutMillis(1000);
			//设置连接池
			PoolingOptions pool = new PoolingOptions();
			// pool.setMaxRequestsPerConnection(HostDistance.LOCAL, 32);
			// pool.setMaxRequestsPerConnection(HostDistance.REMOTE, 32);
			// pool.setCoreConnectionsPerHost(HostDistance.LOCAL, 2);
			// pool.setCoreConnectionsPerHost(HostDistance.REMOTE, 2);
			// pool.setMaxConnectionsPerHost(HostDistance.LOCAL, 4);
			// pool.setMaxConnectionsPerHost(HostDistance.REMOTE, 4);
			pool.setHeartbeatIntervalSeconds(60);
			pool.setIdleTimeoutSeconds(120);
			pool.setPoolTimeoutMillis(5 * 1000);
			List<InetSocketAddress> saddress = new ArrayList<InetSocketAddress>();
			if (servers != null && !"".equals(servers)) {
				for (String server : servers.split(",")) {
					String[] address = server.split(":");
					String ip = address[0];
					int port = 9042;
					if (address != null && address.length > 1) {
						port = Integer.valueOf(address[1]);
					}
					saddress.add(new InetSocketAddress(ip, port));
				}
			}
			InetSocketAddress[] addresses = new InetSocketAddress[saddress.size()];
			saddress.toArray(addresses);
			
			Builder builder = Cluster.builder();
	        builder.withSocketOptions(socket);
	        // 设置压缩方式
	        builder.withCompression(ProtocolOptions.Compression.LZ4);
	        // 负载策略
//	        DCAwareRoundRobinPolicy loadBalance = DCAwareRoundRobinPolicy.builder().withLocalDc("localDc").withUsedHostsPerRemoteDc(2).allowRemoteDCsForLocalConsistencyLevel().build();
//	        builder.withLoadBalancingPolicy(loadBalance);
	        // 重试策略
	        builder.withRetryPolicy(DefaultRetryPolicy.INSTANCE);
			builder.withPoolingOptions(pool);
			builder.addContactPointsWithPorts(addresses);
			builder.withCredentials(username, password);
			Cluster cluster = builder.build();
			if (keyspace != null && !"".equals(keyspace)) {
				session = cluster.connect(keyspace);
			} else {
				session = cluster.connect();
			}
			mapping = new MappingManager(session);
		} catch (Exception e) {
			logger.error("-----Cassandra Config init Error-----", e);
		}
	}
 
示例13
/**
 * Creates Cassandra session wrapper if it wasn't created yet and returns it
 *
 * @param log logger
 * @return Cassandra session wrapper
 */
public synchronized CassandraSession session(IgniteLogger log) {
    if (ses != null)
        return ses;

    Cluster.Builder builder = Cluster.builder();

    if (user != null)
        builder = builder.withCredentials(user, pwd);

    if (port != null)
        builder = builder.withPort(port);

    if (contactPoints != null)
        builder = builder.addContactPoints(contactPoints);

    if (contactPointsWithPorts != null)
        builder = builder.addContactPointsWithPorts(contactPointsWithPorts);

    if (maxSchemaAgreementWaitSeconds != null)
        builder = builder.withMaxSchemaAgreementWaitSeconds(maxSchemaAgreementWaitSeconds);

    if (protoVer != null)
        builder = builder.withProtocolVersion(ProtocolVersion.fromInt(protoVer));

    if (compression != null) {
        try {
            builder = builder.withCompression(ProtocolOptions.Compression.valueOf(compression.trim().toLowerCase()));
        }
        catch (IllegalArgumentException e) {
            throw new IgniteException("Incorrect compression option '" + compression + "' specified for Cassandra connection", e);
        }
    }

    if (useSSL != null && useSSL)
        builder = builder.withSSL();

    if (sslOptions != null)
        builder = builder.withSSL(sslOptions);

    if (collectMetrix != null && !collectMetrix)
        builder = builder.withoutMetrics();

    if (jmxReporting != null && !jmxReporting)
        builder = builder.withoutJMXReporting();

    if (creds != null)
        builder = builder.withCredentials(creds.getUser(), creds.getPassword());

    if (loadBalancingPlc != null)
        builder = builder.withLoadBalancingPolicy(loadBalancingPlc);

    if (reconnectionPlc != null)
        builder = builder.withReconnectionPolicy(reconnectionPlc);

    if (retryPlc != null)
        builder = builder.withRetryPolicy(retryPlc);

    if (addrTranslator != null)
        builder = builder.withAddressTranslator(addrTranslator);

    if (speculativeExecutionPlc != null)
        builder = builder.withSpeculativeExecutionPolicy(speculativeExecutionPlc);

    if (authProvider != null)
        builder = builder.withAuthProvider(authProvider);

    if (poolingOptions != null)
        builder = builder.withPoolingOptions(poolingOptions);

    if (sockOptions != null)
        builder = builder.withSocketOptions(sockOptions);

    if (nettyOptions != null)
        builder = builder.withNettyOptions(nettyOptions);

    return ses = new CassandraSessionImpl(
        builder, fetchSize, readConsistency, writeConsistency, sessionExpirationTimeout, log);
}
 
示例14
public ProtocolOptions.Compression getCompression() {
    return compression;
}
 
示例15
public void setCompression(ProtocolOptions.Compression compression) {
    this.compression = compression;
}
 
示例16
public ProtocolOptions getProtocolOptions() {
  return cluster.getConfiguration().getProtocolOptions();
}
 
示例17
public ProtocolOptions.Compression compression()
{
    return ProtocolOptions.Compression.valueOf(compression);
}
 
示例18
public ConstructorConfiguredCqlClientFactory(String hosts) {
    this(hosts, null, ConsistencyLevel.QUORUM, QueryOptions.DEFAULT_SERIAL_CONSISTENCY_LEVEL, ProtocolOptions.Compression.NONE);
}
 
示例19
public ConstructorConfiguredCqlClientFactory(String hosts, ConsistencyLevel clusterConsistency) {
    this(hosts, null, clusterConsistency, QueryOptions.DEFAULT_SERIAL_CONSISTENCY_LEVEL, ProtocolOptions.Compression.NONE);
}
 
示例20
private void configureCompression() {
    final String compressionConfiguration = (String) configuration.get(TRIDENT_CASSANDRA_COMPRESSION);
    if (StringUtils.isNotEmpty(compressionConfiguration)) {
        builder = builder.withCompression(ProtocolOptions.Compression.valueOf(compressionConfiguration));
    }
}
 
示例21
public Integer getCassandraPort() {
    if (cassandraPort != null)
        return cassandraPort;
    else
        return ProtocolOptions.DEFAULT_PORT;
}
 
示例22
@Override
protected void doParse(Element element, ParserContext parserContext,
		BeanDefinitionBuilder builder) {
	super.doParse(element, parserContext, builder);

	Element optionsElement = DomUtils.getChildElementByTagName(element,
			ELEMENT_CASSANDRA_OPTIONS);

	BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder
			.genericBeanDefinition(CassandraClusterConfig.class.getName());

	if (optionsElement != null) {
		String compressionString = optionsElement.getAttribute(COMPRESSION_ATTRIBUTE);
		if (!StringUtils.isEmpty(compressionString)) {
			ProtocolOptions.Compression compression = ProtocolOptions.Compression
					.valueOf(compressionString);
			beanBuilder.addPropertyValue("compression", compression);
		}

		String retryPolicyString = optionsElement
				.getAttribute(RETRY_POLICY_ATTRIBUTE);
		if (!StringUtils.isEmpty(retryPolicyString)) {
			beanBuilder.addPropertyReference("retryPolicy", retryPolicyString);
		}

		String loadBalancingPolicyString = optionsElement
				.getAttribute(LOAD_BALANCING_POLICY_ATTRIBUTE);
		if (!StringUtils.isEmpty(loadBalancingPolicyString)) {
			beanBuilder.addPropertyReference("loadBalancingPolicy",
					loadBalancingPolicyString);
		}

		String socketOptionsString = optionsElement
				.getAttribute(SOCKET_OPTIONS_ATTRIBUTE);
		if (!StringUtils.isEmpty(socketOptionsString)) {
			beanBuilder.addPropertyReference("socketOptions", socketOptionsString);
		}

		String reconnectionPolicyString = optionsElement
				.getAttribute(RECONNECTION_POLICY_ATTRIBUTE);
		if (!StringUtils.isEmpty(reconnectionPolicyString)) {
			beanBuilder.addPropertyReference("reconnectionPolicy",
					reconnectionPolicyString);
		}

	}

	builder.addConstructorArgValue(beanBuilder.getBeanDefinition());
}